问题
I'm using the scripts section of the package.json
to force resolutions:
"preinstall": "npx npm-force-resolutions"
in the resolutions section, I have entered graceful-fs
with a specified version:
"resolutions": {
"graceful-fs": "^4.2.4",
},
When i run npm i
everything is installed correctly, the set versions are taken in to account. But later on when I install an additional module, e.g. npm i random-package
, my set versions are being thrown away and I endup with graceful-fs@1.2.3
and other low versions in some dependencies.
If I clear the node_modules folder and run npm i
again, everything is alright again.
I also tried setting the resolution more specific, like
"resolutions": {
"glob/**/graceful-fs": "^4.2.4",
},
but this doesn't help.
I also tried:
- adding the module as dependency, devDependency or peerDependency
- using a shrinkwrap and overriding it there
but no luck.
what am I missing?
回答1:
Hi @NthDegree the only way which worked for me was to first run the normal npm install and then add the packages-lock.json file to git. After doing that when you add "preinstall": "npx npm-force-resolutions", it always updates the dependency resolution to the version mentioned.
I am not sure if adding packages-lock.json file to git is good or bad but by using this method the CI/CD pipeline works as well.
来源:https://stackoverflow.com/questions/64605805/npm-force-resolutions-not-working-when-installing-a-new-package