gulp项目中ReferenceError_ primordials is not defined报错解决方法
# 出现的现行
gulp项目中,运行gulp build后报错,报错信息如下:
fs.js:40
} = primordials;
^
ReferenceError: primordials is not defined
at fs.js:40:5
1
2
3
4
5
2
3
4
5
ReferenceError: primordials is not defined 意思是primordials这个没被定义,是因为项目中gulp版本和node版本不兼容,先看下本地的版本:
gulp --version
CLI version: 2.3.0
Local version: 3.9.1
1
2
3
4
2
3
4
node -version
v14.6.0
1
2
3
2
3
node >=12 && gulp <= 3的话,他们的版本不兼容,我本地是14的版本。
# 解决方法
找到原因后,有两种解决方法,降级node和升级gulp
# 降级node
不建议用这种方法,毕竟时代在进步,还是不要倒退的好
# 升级gulp(1)
不降级node版本,那就更新gulp版本,最新的已经4.x了,但是这个gulp又不经常用,又不想更新他 那就用另一个解决方法,使用npm shrinkwrap锁定依赖版本: 1、项目根目录新建npm-shrinkwrap.json 2、npm-shrinkwrap.json内容修改如下:
{
"dependencies": {
"graceful-fs": {
"version": "4.2.2"
}
}
}
1
2
3
4
5
6
7
2
3
4
5
6
7
然后重新执行npm install,这时候再去执行gulp相关操作就不会报错了。
注意
注意:这个文件在执行过一次npm install以后,就失效了,下次再执行就没有效果了。
# 升级gulp(2)
在package.json文件里加入以下代码:
{
"scripts": {
"preinstall": "npx npm-force-resolutions"
},
"resolutions": {
"graceful-fs": "4.2.2"
}
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
npm-force-resolutions
会更改package-lock.json
文件来设置graceful-fs
到指定的版本。
这个方法每次执行npm install
都会生效
上次更新: 2024/02/20, 17:31:36
- 01
- Node与GLIBC_2.27不兼容解决方案08-19
- 02
- Git清空本地文件跟踪缓存08-13