Open mmkal opened 3 months ago
Worth noting that corepack up
does run <pkg-manager> install
, so IMO it wouldn't be inconsistent to have a command that would do the same thing without updating the version of the package manager.
/cc @arcanis
This would be really nice.
I think I would take it a step further so I could also run remove
or any other subcommand of a given package manager.
Maybe something like corepack --project <subcommand>
, for example:
corepack --project init
corepack --project install
corepack --project add foobar
corepack --project remove foobar
I like that. Maybe project
itself could be a command, and install
/add
/remove
subcommands, since corepack --project install
would now be a pretty different thing from corepack install
. corepack project x
reads a bit nicer, and makes clear that you're scoping down what you're doing to the project-level.
So:
corepack project install
corepack project add left-pad
corepack project remove right-pad
Opened a PR! #551
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 theirpackageManager
field says.Proposal - a
--project
parameter added to theinstall
command: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"
thecorepack install --project
command 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:
packageManager
is 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-pad
Not sure if this has been asked before but I couldn't find it in the issues.