[BUG] presence of overrides
breaks ability to downgrade un-hoisted workspace dependencies
#7028
Labels
overrides
breaks ability to downgrade un-hoisted workspace dependencies
#7028
Is there an existing issue for this?
This issue exists in the latest npm version
Current Behavior
If the root
package.json
defines anyoverrides
, if you attempt to downgrade an un-hoisted workspace dependency via the CLI (e.g.npm install <specifierWithOlderVersion> --save-exact -w <workspace>
), the command may succeed without actually doing anything. In npm <11.2 this affected all such downgrades, as of npm 11.2 it only affects certain ones (see the repro and notes). This only affects downgrades, you can always upgrade to a newer version.Related to #7018 and exacerbated by #7019
Expected Behavior
Invoking the CLI to install a package should either 1. install the package or 2. display an error message explaining why it could not be installed.
Steps To Reproduce
Given
package.json
:And
packages/my-cool-package/package.json
:And
packages/another-cool-package/package.json
:Run:
npm i [email protected] --save-exact -w my-cool-package
(hoisted tonode_modules/tiny-invariant
)npm i [email protected] --save-exact -w another-cool-package
(un-hoisted topackages/another-cool-package/node_modules/tiny-invariant
)npm i [email protected] --save-exact -w another-cool-package
0.0.3
is still installed, and thepackage*.json
files are unchanged since step 2Other notes
Given the repro above:
--prefer-dedup
in step 3, then it does dedup correctly.my-cool-package
entirely, then you can't downgrade tiny-invariant to any version inanother-cool-package
Environment
The text was updated successfully, but these errors were encountered: