美文网首页
gulp dev报错 & nvm版本控制

gulp dev报错 & nvm版本控制

作者: StevenLiupz | 来源:发表于2021-01-06 11:32 被阅读0次

    gulp dev报错

    gulp项目,当我们使用较新的node版本下载项目依赖时,gulp dev可能会报错:


    image.png

    原因在于,gulp版本可能在V3,而node版本则在V12,版本不兼容。
    解决方法:

    1. 版本控制:
    • 将gulp版本升级到V4;
    • 将node版本降级到V11;
    • 将graceful-fs升级到在node v12+下工作的版本4.2.2(推荐);
    1. 最佳方法:
      在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,出现版本号,说明安装成功。

    注意

    1. 安装nvm前,如果以前安装过node的,必须先将node卸载掉,否则即使nvm安装成功,nvm use version也提示成功,最终用的还是你原来的node版本;
    2. 选择安装目录时直接放到根目录即可,不要放到C:\Program Files目录下,否则由于Program File 存在空格,在使用 nvm use [version] 切换版本时会出现乱码的情况:
      image.png

    如果嫌弃安装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锁定依赖

    相关文章

      网友评论

          本文标题:gulp dev报错 & nvm版本控制

          本文链接:https://www.haomeiwen.com/subject/kqcnoktx.html