Currently, there's no standardized way to install dependencies for projects using different package managers without prior knowledge of the specific manager used. This can complicate CI/CD pipelines, development scripts, and workflows for developers working across multiple projects.
It would be nice to be able to write a script that will do npm install / pnpm install / yarn install on arbitrary packages, without having to know in advance what their packageManager field says.
Proposal - a --project parameter added to the install command:
corepack install --project
This would change install to install the project/node_modules rather than the package manager itself. (Or could be a separate command or something).
For a project with "packageManager": "pnpm@9.4.0" the corepack install --project command would be equivalent to running
corepack enable
pnpm install
(called via a subshell)
Or for a project with "packageManager": "npm@10.1.0" this would be equivalent to
corepack enable
npm install
Similar for yarn, etc.
Benefits
- Simplifies shared code for CI/CD pipelines like GitHub Actions
- Reduces boilerplate in build scripts
- Improves developer experience when working with multiple projects
Other notes:
- could/should probably have a fallback behaviour when no
packageManager is present, of using npm, or looking for lockfiles, or just erroring
- potential follow-on: allow passing extra args after a
-- like corepack install --project -- --no-frozend-lockfile (though this would no longer really be generic across package managers I guess)
- potential follow-on: similar install-package functionality like
corepack add left-pad
Not sure if this has been asked before but I couldn't find it in the issues.
Currently, there's no standardized way to install dependencies for projects using different package managers without prior knowledge of the specific manager used. This can complicate CI/CD pipelines, development scripts, and workflows for developers working across multiple projects.
It would be nice to be able to write a script that will do
npm install/pnpm install/yarn installon arbitrary packages, without having to know in advance what theirpackageManagerfield says.Proposal - a
--projectparameter added to theinstallcommand:This would change
installto install the project/node_modules rather than the package manager itself. (Or could be a separate command or something).For a project with
"packageManager": "pnpm@9.4.0"thecorepack install --projectcommand would be equivalent to running(called via a subshell)
Or for a project with
"packageManager": "npm@10.1.0"this would be equivalent toSimilar for yarn, etc.
Benefits
Other notes:
packageManageris present, of usingnpm, or looking for lockfiles, or just erroring--likecorepack install --project -- --no-frozend-lockfile(though this would no longer really be generic across package managers I guess)corepack add left-padNot sure if this has been asked before but I couldn't find it in the issues.