gulp dev报错
gulp项目,当我们使用较新的node版本下载项目依赖时,gulp dev可能会报错:
原因在于,gulp版本可能在V3,而node版本则在V12,版本不兼容。
解决方法:
- 版本控制:
- 将gulp版本升级到V4;
- 将node版本降级到V11;
- 将graceful-fs升级到在node v12+下工作的版本4.2.2(推荐);
- 最佳方法:
在package.json同级目录下新建文件npm-shrinkwrap.json,并输入以下内容:
{
"dependencies": {
"graceful-fs": {
"version": "4.2.2"
}
}
}
文件创建完成后,再进行 npm install
, 依赖下载完成后,再执行 gulp dev
,此时项目就能正常运行了(关于npm-shrinkwrap.json,可查阅参考资料)。
注意:
需要注意的是,这个文件在执行npm install
之后会被重写,如果后续其他人初始化项目时基于的是重写后的这个文件去install,gulp dev
时还是会报错,所以这个文件只将最开始时的文件传到git即可,后续不要上传。
nvm的使用
当我们同时参与多个项目,而每个项目所使用的node版本都不一样,此时就要使用到nvm版本管理工具,每次切换项目时切换对应的node版本(麻烦的地方在于,每次切换项目,都需要切换对应的node版本)。
nvm安装与使用
windows nvm下载地址
选择nvm-setup.zip下载即可。
检验安装是否成功:
cmd,输入nvm -v,出现版本号,说明安装成功。
注意:
- 安装nvm前,如果以前安装过node的,必须先将node卸载掉,否则即使nvm安装成功,nvm use version也提示成功,最终用的还是你原来的node版本;
- 选择安装目录时直接放到根目录即可,不要放到C:\Program Files目录下,否则由于Program File 存在空格,在使用
nvm use [version]
切换版本时会出现乱码的情况:
如果嫌弃安装node和npm包时速度太慢,可使用淘宝镜像,找到nvm安装目录,在setting.txt中添加:
nvm node_mirror https://npm.taobao.org/mirrors/node/
nvm npm_mirror https://npm.taobao.org/mirrors/npm/
nvm使用
nvm list
:查看已安装过的版本
nvm use [version]
:切换node版本,如:nvm use 11.15.0
参考
gulp打包错误
How to fix "ReferenceError: primordials is not defined" error
nvm命令
nvm使用
npm-shrinkwrap.json
npm-shrinkwrap锁定依赖