前言
在维护远古项目的时候,当执行完npm run dev
的时候出现了个 ReferenceError: primordials is not defined
错误,查看发现是 node 版本和 gulp 版本不兼容导致的,由于只是【维护一下】,因此排除将它们都升级的方案。
解决方案
shrinkwrap
在 package.json
文件的同级目录下新建一个 npm-shrinkwrap.json
文件
{
"dependencies": {
"graceful-fs": {
"version": "4.2.3"
}
}
}
然后删除 node_modules
,再重新 npm install
即可。
这个文件在执行过一次 npm install 以后,下次再执行就没有效果了!
resolutions
在 package.json
文件里加入以下代码:
{
// current package.json
"scripts": {
// current package.json scripts
"preinstall": "npx npm-force-resolutions"
},
"resolutions": {
"graceful-fs": "4.2.3"
}
}
npm-force-resolutions
会更改 package-lock.json
文件来设置 graceful-fs
到想要的版本。
这个方法每次执行 npm install
都会生效。