美文网首页
使用nvm解决gulp ReferenceError: prim

使用nvm解决gulp ReferenceError: prim

作者: 合肥黑 | 来源:发表于2021-04-16 14:57 被阅读0次
    一、问题

    使用gulp构建老项目时报错:ReferenceError: primordials is not defined,参考解决 primordials is not defined 问题,需要回退npm版本。

    搜索了一下:
    管理 node 版本,选择 nvm 还是 n?
    n PK nvm 方法使用
    由于我本地已经安装了npm,所以选了n,装完才发现不支持windows……然后再去装nvm!!

    参考https://stackoverflow.com/q/55921442/6304805,使用nvm use 11.15.0将本地node切换到这个11.15.0的版本, 再重新安装全局包(每个node版本下的全局包都要重新安装), 这时再去重新install下自己的项目, 就不会出现primordials is not defined报错了

    二、安装nvm

    参考
    Windows下完全卸载node.js并安装node.js的多版本管理工具nvm-windows
    Windows nvm的安装使用(及排坑)
    windows下通过nvm安装node(内含卸载node)
    Windows下完全卸载node.js并安装node.js的多版本管理工具nvm-windows

    进入https://github.com/coreybutler/nvm-windows/releases,下载安装.

    最好在卸载前重启一下电脑,卸载完毕后也重启一下。

    image.png

    这里是因为安装到了Program Files,有空格,导致失败。当然,也不能安装到有中文的路径上。

    三、使用nvm

    在使用前,因为某些原因,需要指定镜像。打开我们的nvm安装目录找到settings.txt


    image.png

    在末尾添加如下内容:

    node_mirror: https://npm.taobao.org/mirrors/node/
    npm_mirror: https://npm.taobao.org/mirrors/npm/
    
    1.nvm list

    如果是第一次安装,使用该命令结果如下:No installations recognized.

    2.nvm list available

    查看可安装的nodejs版本
    输入该命令结果如下:

    C:\Users\Lewis>nvm list available
    
    |   CURRENT    |     LTS      |  OLD STABLE  | OLD UNSTABLE |
    |--------------|--------------|--------------|--------------|
    |   11.10.0    |   10.15.1    |   0.12.18    |   0.11.16    |
    |    11.9.0    |   10.15.0    |   0.12.17    |   0.11.15    |
    |    11.8.0    |   10.14.2    |   0.12.16    |   0.11.14    |
    |    11.7.0    |   10.14.1    |   0.12.15    |   0.11.13    |
    |    11.6.0    |   10.14.0    |   0.12.14    |   0.11.12    |
    |    11.5.0    |   10.13.0    |   0.12.13    |   0.11.11    |
    |    11.4.0    |    8.15.0    |   0.12.12    |   0.11.10    |
    |    11.3.0    |    8.14.1    |   0.12.11    |    0.11.9    |
    |    11.2.0    |    8.14.0    |   0.12.10    |    0.11.8    |
    |    11.1.0    |    8.13.0    |    0.12.9    |    0.11.7    |
    |    11.0.0    |    8.12.0    |    0.12.8    |    0.11.6    |
    |   10.12.0    |    8.11.4    |    0.12.7    |    0.11.5    |
    |   10.11.0    |    8.11.3    |    0.12.6    |    0.11.4    |
    |   10.10.0    |    8.11.2    |    0.12.5    |    0.11.3    |
    |    10.9.0    |    8.11.1    |    0.12.4    |    0.11.2    |
    |    10.8.0    |    8.11.0    |    0.12.3    |    0.11.1    |
    |    10.7.0    |    8.10.0    |    0.12.2    |    0.11.0    |
    |    10.6.0    |    8.9.4     |    0.12.1    |    0.9.12    |
    |    10.5.0    |    8.9.3     |    0.12.0    |    0.9.11    |
    |    10.4.1    |    8.9.2     |   0.10.48    |    0.9.10    |
    
    This is a partial list. For a complete list, visit https://nodejs.org/download/release
    
    3.安装指定版本的nodejs

    nvm install 8.11.2 64-bit
    安装成功后可以查询看看已安装的nodejs版本:

    C:\Users\Lewis>nvm list
    
        8.11.2
    

    有需要的话,可以继续安装其他版本的nodejs。

    4.使用指定版本的nodejs

    nvm use 8.11.2
    安装成功后可以验证下版本:

    C:\Users\Lewis>nvm list
    
      * 8.11.2 (Currently using 64-bit executable)
    
    C:\Users\Lewis>node -v
    v8.11.2
    

    如果有报错:

    C:\Users\cuixu>nvm use 17.6.0
    exit status 1: �ܾ����ʡ�
    

    参考解决问题:使用nvm use出现exit status 1与exit status 145乱码

    image.png
    我们可以在Windows10系统的开始菜单上,单击鼠标右键,
    image.png
    也可以参考Windows10将CMD添加到右键菜单
    5.删除指定版本的nodejs

    nvm uninstall 8.11.2

    四、Windows上安装NVM之后找不到NPM的解决办法

    去NVM的安装路径下(通常为c:\users<your user>\AppData\Roaming\nvm)查看了一下。NVM将所有安装的Node.js的不同版本存放在这个目录下,当使用nvm use命令时,会将对应版本的Node.js目录中的内容拷贝到C:\Program Files\nodejs目录中,从而达到切换不同Node.js版本的目的。但是这个目录下的node_modules目录是空的!怎么回事?

    通过搜索,我找到在github上的nvm-windows的issues中也有人在问同样的问题。基本意思就是说npm的仓库已经从https://github.com/npm/npm移到https://github.com/npm/cli了,但是NVM v1.1.7并没有做相应的调整,所以通过nvm install安装Node.js时对应的npm实际上并没有安装成功,不过NVM此时并没有报告任何错误,而是仍然显示已安装成功。

    既然这是NVM自身的问题,那我们只能通过手动的方法来修复。从Node.js官网下载对应版本的压缩包,将其中node_modules目录下的内容拷贝到NVM目录下对应Node.js安装目录中的node_modules中。如果NVM目录下有多个Node.js版本,则需要手动拷贝每个Node.js版本中node_modules目录的内容。

    https://nodejs.org/download/release/v10.6.0/是Node.js v10.6.0版本的下载地址。下载node-v10.6.0-win-x64.zip之后解压,将全部文件拷贝到NVM目录下对应Node.js版本目录中。

    再次使用nvm use命令切换不同版本的Node.js,然后在命令行通过node -v查看当前Node.js版本,同时输入npm看看该命令是否有效。注意,如果当前就在v10.6.0版本,需要切换到另一个版本,再切换回来,这样才会把解压的内容复制到nodejs安装目录。

    相关文章

      网友评论

          本文标题:使用nvm解决gulp ReferenceError: prim

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