DEV: Switch to pnpm for JS dependencies (#28671)

This will bring significant improvements to install speed & storage requirements. For information on how it may affect you, see https://meta.discourse.org/t/324521

This commit:
- removes the `yarn.lock` and replaces with `pnpm-lock.yaml`
- updates workspaces to pnpm format
- adjusts package dependencies to work with pnpm's stricter resolution strategy
- updates Rails app to load modules from more specific node_modules directories
- adds a `.pnpmfile` which automatically cleans up old yarn-managed `node_modules` directories
- updates various scripts to call `pnpm` instead of `yarn`
- updates patches to use pnpm's native patch system instead of patch-package
- adds a patch for licensee to support pnpm
This commit is contained in:
David Taylor
2024-09-03 10:51:07 +01:00
committed by GitHub
parent 9b4b5b5028
commit 80b9c280ba
56 changed files with 18609 additions and 13553 deletions

View File

@ -46,7 +46,7 @@ def write_template(path, task_name, template)
File.write(output_path, "#{header}\n\n#{template}")
puts "#{basename} created"
system("yarn run prettier --write #{output_path}", exception: true)
system("pnpm prettier --write #{output_path}", exception: true)
puts "#{basename} prettified"
end
@ -59,7 +59,7 @@ def write_hbs_template(path, task_name, template)
basename = File.basename(path)
output_path = "#{Rails.root}/app/assets/javascripts/#{path}"
File.write(output_path, "#{header}\n#{template}")
system("yarn run prettier --write #{output_path}", exception: true)
system("pnpm prettier --write #{output_path}", exception: true)
puts "#{basename} created"
end
@ -204,7 +204,7 @@ end
task "javascript:update" => "clean_up" do
require "uglifier"
system("yarn install", exception: true)
system("pnpm install", exception: true)
versions = {}
start = Time.now