primordials is not defined 报错 - 切换node版本

NodeJS & Gulp,报错 primordials is not defined

出现这个错误,是由Gulp和Node版本不匹配导致的。因此需要升级Gulp 或者 降低 node 版本。(我的执行环境:Gulp 3.9.1, Node 12.18.1)。另外,由于Gulp3 和 Gulp4 有较大差别,为了偷懒避免重写 gulpfile.js ,降低node版本是个更好的选择。

切换 Node 版本

方法一: 卸载原nodejs,重新下载需要的node版本
(简单粗暴但不推荐,总不能每次碰到问题都卸了重新下载)

方法二: 使用版本切换工具(of course.)
nvm:仅用于 mac 和 linux 的版本切换工具
nvm-windows:windows版本的nvm

我这边是 windows 系统,以下记录 nvm-windows 的安装和使用过程

nvm-windows

下载安装: https://github.com/coreybutler/nvm-windows/releases
详细的安装步骤这里不赘述了,可以参考:https://www.cnblogs.com/dreamsqin/p/10885082.html

注意! 在安装 nvm-windows 之前需要先卸载已安装的NodeJS

安装完成后的配置:

  • 环境变量配置(参考链接:https://www.jianshu.com/p/1aaf52b0b283
    (控制面板-系统-高级系统设置-高级-环境变量)
    变量名:NVM_HOME 变量值:C:\Users\Administrator\AppData\Roaming\nvm(安装目录)
    变量名:NVM_SYMLINK 变量值:C:\Users\Administrator\AppData\Roaming\nodejs(即settings.txt中的path)

  • settings.txt 配置
    nvm 中的 settings.txt 也需要作相应配置:
    1.修改 path (定义nodejs的安装目录)
    2.添加镜像源(国内安装速度问题)
    完成后的配置如下:

     // settings.txt
     root: C:\Users\Administrator\AppData\Roaming\nvm
     path: C:\Users\Administrator\AppData\Roaming\nodejs
     proxy: none
     node_mirror: http://npm.taobao.org/mirrors/node/
     npm_mirror: https://npm.taobao.org/mirrors/npm/
    

踩坑记录:

  1. 第一次安装后、执行 nvm use <version> 之前是没有 nodejs 文件夹的,执行之后会自动生成(本质上是一个指向 nvm 中 node 相应版本文件夹的快捷方式)。在没有 nodejs 文件夹时使用 npm 会报错(‘npm’ 不是内部或外部命令… ),此时先运行 nvm use <version> 即可
  2. 完成 node 版本切换后,回到 vscode 中执行 node 发现报错找不到 node 命令。重启计算机后就好了。估计是由于环境变量的改变,vscode 读取了什么东西,重启后重新读取了就好了?
  3. 切换好 node 环境之后,原来安装的项目依赖需要删除重新安装。切记 先切换 node 环境,再安装。 如果先安装了依赖、再切换环境版本,会报错 Missing binding.... could not find a binding for your current environment: Windows 64-bit with Node.js 10.x
  4. 由于 node 重新安装了,原有的包需要重新安装

最后再补充一个,我还没实践但是觉得有必要实践一下的:
在每个版本的nodejs中,都会自带npm,为了统一起见,可以安装一个全局的npm工具,这个操作很有必要,因为我们需要安装一些全局的其他包,不会因为切换node版本造成原来下载过的包不可用(引自:https://www.jianshu.com/p/3811e2036dbd

猜你喜欢

转载自blog.csdn.net/lychee_xiahua/article/details/107573663
今日推荐