执行npm run build时提示以下错误:ReferenceError: primordials is not defined
问题的原因:是安装gulp版本与node版本不兼容的问题
解决办法:
方法1
降低node版本到 node@10, 升级gulp@4
操作步骤:
1.先查看node 版本号 node -v
2.查看当前文件夹下的 gulp 版本号gulp -v
3.如果发现node版本号 过高,比如,我之前的node升级到了最新,node@14,回退node版本到 node@11
先安装npm版本控制器npm install -g n
切换版本sudo n v11.15.0
安装node npm i -g node
查看node版本 node -v
4.查看node 是否回退成功,如果没问题,删除当前文件夹的node_modules文件夹,重新安装依赖 npm install
5.安装成功后确认 gulp 版本为4
6.开启gulp,就可以正常启用了
或者还可以这样(推荐以下方法)
方法2
如果你的项目不需要经常npm install
可以在package.json文件的同级目录下新建一个npm-shrinkwrap.json文件
输入以下内容:
{
"dependencies": {
"graceful-fs": {
"version": "4.2.3"
}
}
}
注意这个文件在执行过一次npm install以后,下次再执行就没有效果了
方法3
在你的package.json文件里加入以下代码:
{
// Your current package.json
"scripts": {
// Your 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都会生效