mirror of
https://github.com/discourse/discourse.git
synced 2025-06-04 11:11:13 +08:00
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:
16
.pnpmfile.cjs
Normal file
16
.pnpmfile.cjs
Normal file
@ -0,0 +1,16 @@
|
||||
const fs = require("fs");
|
||||
const { execSync } = require("child_process");
|
||||
|
||||
if (fs.existsSync("node_modules/.yarn-integrity")) {
|
||||
console.log(
|
||||
"Detected yarn-managed node_modules. Performing one-time cleanup..."
|
||||
);
|
||||
|
||||
// Delete entire contents of all node_modules directories
|
||||
// But keep the directories themselves, in case they are volume mounts (e.g. in devcontainer)
|
||||
execSync(
|
||||
"find ./node_modules ./app/assets/javascripts/*/node_modules -mindepth 1 -maxdepth 1 -exec rm -rf {} +"
|
||||
);
|
||||
|
||||
console.log("cleanup done");
|
||||
}
|
Reference in New Issue
Block a user