node多版本切换管理工具nvm的安装使用及踩坑记录

2,111 阅读4分钟

背景

最近因为项目需要,既有node版本很低的项目,也有node高版本的项目,高低node版本的项目需要同时维护。基于此,就需要能方便的做node版本的切换。看了下主流的node版本管理工具还是nvm,在用nvm的时候遇到了一些问题,踩了一些坑,记录一下,供大家参考。

安装

下载

下载安装nvm:github.com/coreybutler…

我是直接下载的zip压缩包一步步安装就可以。

nvm常用的命令

  • nvm nvm list 是查找本电脑上所有的node版本

    • nvm list 查看已经安装的版本
    • nvm list installed 查看已经安装的版本
    • nvm list available 查看网络可以安装的版本
  • nvm install 安装最新版本nvm

  • nvm use ## 切换使用指定的版本node

  • nvm ls 列出所有版本

  • nvm current显示当前版本

  • nvm alias ## 给不同的版本号添加别名

  • nvm unalias ## 删除已定义的别名

  • nvm reinstall-packages ## 在当前版本node环境下,重新全局安装指定版本号的npm包

  • nvm on 打开nodejs控制

  • nvm off 关闭nodejs控制

  • nvm proxy 查看设置与代理

  • nvm node_mirror [url] 设置或者查看setting.txt中的node_mirror,如果不设置的默认是 nodejs.org/dist/

  nvm npm_mirror [url] 设置或者查看setting.txt中的npm_mirror,如果不设置的话默认的是: github.com/npm/npm/arc….

  • nvm uninstall 卸载制定的版本
  • nvm use [version] [arch] 切换制定的node版本和位数
  • nvm root [path] 设置和查看root路径
  • nvm version 查看当前的版本

遇到的问题及问题解决

遇到问题

正常安装之后,通过nvm install 安装了2个版本的node,发现可以正常切换,nvm use 切换更到高版本的能正常运行,但是切换到低版本的,想通过npm run dev 起vue项目的时候,报nvm不是内部或外部指令的错误。

问题原因及解决方法

如果你也遇到了同样的问题,可能是由下面两个原因导致的:

  • 原因1:在使用nvm版本管理工具之前,你本地是安装过node的,这个时候需要把你之前安装的node文件全部删除,先在程序里去卸载你安装的node,然后去user文件夹下APPdata/roaming/以及local文件夹下找到npm-cache和node_moudel文件夹,全部删除,在检查一下环境变量中,node的环境变量是否已经移除。

  • 原因2:nvm默认安装完成后,nvm的安装目录下有个settings.txt文件,里面只有两个环境路径的配置,这里需要加上node源地址和npm源地址的配置,配置如下

​ node_mirror: npm.taobao.org/mirrors/nod…

​ npm_mirror: npm.taobao.org/mirrors/npm…

1.png

如果不配置这两个镜像源,nvm在安装node版本时,会出现无法安装对应版本的npm。你会发现nvm安装目录下的temp文件夹里下载的npm是损坏切大小为0kb,个原因就是源地址导致的。当然你也可以手动去下载对应版本的npm包解压到你node文件夹下,npm的版本号就是temp文件下损坏的压缩包名上,但是不能保证会有其他的坑。

npm历史版本下载nodejs.org/dist/

2.png 如上图,当你使用nvm安装对应node版本成功之后,到nvm安装目录下看下node安装目录

3.png

4.png node目录下如果有npm和npx文件,那么恭喜你,这样就成功了。如果没有这些文件,那么就检查一下上面的两个原因。 要是还是不行,那就去上面给的历史版本链接里面下载并解压到对应的版本,就行了。

最后,完整的目录结构是这样的

5.png

总结

  • 注意安装nvm需要把之前已经安装的node先删除,不同版本的node都是通过nvm安装。

  • 在开始的时候找node管理工具,看到由一些说法说nvm不能直接在windows使用,还需要借助其他工具。但是实践看来可以直接在windows使用的,就是可能会遇到以上的一些问题,解决即可。

  • 建议还是把nvm安装在c盘默认的安装路径,看到有说法是不装在默认的路径,需要配置环境变量,否则可能会有问题。

  • 对于node的版本管理,在我们新旧项目同时开发,node版本不兼容的情况下,还是很有必要的。

    参考文档:blog.csdn.net/qq_36539696…