利用nvm改变node版本

背景:最新版本的node在做一些老项目的时候,例如之前用vue-cli2.0脚手架配新版本webpack搭建项目,在安装sass-loader跟node-sass时的时候,会出现连环一系列版本问题,只能通过降低node版本才能解决。所以写这篇文章,希望有帮助到~

windows nvm 切换版本后yarn 不生效 nvm设置默认node版本_npm

  1. nvm 安装地址 :https://github.com/coreybutler/nvm-windows/releases
  2. 下载完成后解压,选择nvm安装的路径(可以自己定义,但必须是英文),然后选择node路径(按默认的走)
  3. 安装好了,以管理员身份输入命令:
    nvm version,显示版本号就成功了。
    nvm list available,可以查看可以安装的node版本。
    nvm list 查看电脑目前存在的node版本
    nvm install 版本号,就可以下载对应版本的node
    例如安装:nvm install 14.17.4
    再使用:nvm use 14.17.4
    就可以切换使用该版本的node

如果之前安装node配置过环境变量,那么使用 nvm 版本管理工具来安装另一版本的nodejs,就不需要再配置环境变量了。运行老项目时先 nvm use 特定node版本,新建项目时使用最新的node 版本

  1. 启动项目会发现npm失效,是因为切换了node版本,没有配置对应版本的npm导致的,按下面步骤走:
    a. https://nodejs.org/zh-cn/download/releases/ 点击链接,查看安装的node版本和相对应的npm版本。比如14.17.4这个版本的node对应的是6.14.14版本的npm
  2. windows nvm 切换版本后yarn 不生效 nvm设置默认node版本_npm_02

  3. b. 然后来到,https://registry.npmmirror.com/binary.html?path=npm/ 这里可以下载该版本的npm,下载zip那个压缩包,然后桌面解压。
    c. 然后将此文件命名为npm,放在nvm目前切换使用的node版本的node_modules文件夹里,然后打开npm文件夹下的bin,找到npm和npm.cmd俩文件:把这俩文件复制到node文件夹下:
  4. windows nvm 切换版本后yarn 不生效 nvm设置默认node版本_vue.js_03

    windows nvm 切换版本后yarn 不生效 nvm设置默认node版本_javascript_04

  5. 然后检查npm -v ,就可以看到ok了

问题1:乱码

如果发现nvm use xxx 切换版本的时候出现乱码145的时候,nvm version看一下自己nvm的版本号,如果是1.1.9的话,我自己是遇到这个问题,把版本换成1.1.7就ok了。

windows nvm 切换版本后yarn 不生效 nvm设置默认node版本_npm_05


windows nvm 切换版本后yarn 不生效 nvm设置默认node版本_vue.js_06

问题2:Unexpected token ‘.’

  1. 很多文章说把node版本切换回低版本就能解决了。
  2. 但是现在都23年了,不可能都依赖旧的14+的node版本,如果把node版本升到16+,就出现这个问题的话,那么需要重新把nvm的版本提上去,这里直接去github上面把该文件拉下来打补丁进行nvm的更新,选择最新版本1.1.10进行更新。更新后把有问题的node版本通过uninstall命令卸载,重新在install安装回来,nvm use 该版本,再重新下载,就ok了。