This package modifies package-lock.json to force the installation of specified versions of a set of transitive dependencies (dependencies of dependencies).
Getting started
- Add a field
resolutionswith the dependency version you want to fix at the main level of yourpackage.json.
Example:
"resolutions": {
"ssri": "8.0.5"
}- Add force-resolutions to the preinstall script so that it patches the
package-lock.jsonfile before everynpm install:
"scripts": {
"preinstall": "npx force-resolutions"
}- Install dependencies
npm installRemember that whenever you run npm install, the preinstall command will run automatically.
If a package.lock.json is not detected the script will not run, and any other command after it will be executed as normal.
- To confirm that the right version of the package you are trying to override was installed, use:
npm ls ssriRunning this repository locally
NodeJS and NPM versions NodeJS version:
v16.13.1NPM version:
8.1.2Instructions
- Install the dependencies of the project:
npm install- Build the project:
npm run build- Go to the dist folder
cd distCopy a package.json and a package-lock.json file into the dist folder
Add a resolutions field in the package.json and inside of it a package to override
Run the compiled file
node index.js- Search in the package-lock.json to see that the versions of the packages are updated
Why this project was created
This project was created because npm-force-resolutions became not suitable for the necesities the team I was working in had. We needed to avoid triggering the execution of the script when there was no package-lock.json, descriptive error logs, descriptive logs during the execution, faster download times, compatibility with multiple npm versions and faster execution times.
Discord community
To simplify communication I have created a discord community, if you detect an issue with this package or want to improve it in some way, you can contact me here:
NPM
See other versions of the package on NPM
Acknowledgments
This project was inspired by the next package: npm-force-resolutions.
Special thanks to Denis Gulin for contributing to fix issues that were happening with the package and improving the code.