[node]nvs使用的注意事项

4,205 阅读2分钟

原文地址

在使用nvs之前一直使用的是nvm windows这款工具,用着也挺爽的,前不久看到科普文,所以也想试试,试了之后在windows上翻车了,所以这里记录一下。先看科普文:使用 nvs 管理本地 Node.js 版本

windows下安装

推荐cmd手动安装步骤

git bash环境配置

# ~/.bashrc 添加下面的环境配置
# 根据你安装的路径选择$ProgramData 或者 $LOCALAPPDATA
export NVS_HOME=$LOCALAPPDATA/nvs
. $NVS_HOME/nvs.sh

git bash中nvs报错找不到命令

nvs v1.5.1使用MSI或者choco install nvs安装之后可以正常使用,但是会缺失nvs.sh,如果你在git bash下使用nvs会出现找不到命令,后续版本会修复这个问题。推荐cmd手动安装步骤则没有这个问题。

nvsnpm命令不生效

安装之后在新的终端窗口中nvsnpm不生效时,注意注销重新登录,或者重新启动一次系统。

注意: 尤其是第一次使用nvs link之后,发现nodenpm不会生效,最好注销重新登录。

共用npm全局模块

首先不建议大家跨版本公用全局模块,除非你知道你在干什么。

科普文:使用 nvs 管理本地 Node.js 版本 这里有介绍怎么设置。

# 使用git bash创建
mkdir -p ~/.npm-global
npm config set prefix ~/.npm-global
# .bashrc中添加全局模块的路径
# 注意~/.npm-global/   不是~/.npm-global/bin
# windows 10下没有bin文件夹,所以最好检查下。。。
echo "export PATH=~/.npm-global/:$PATH" >> ~/.bashrc

source ~/.bashrc

注意: (nvs v1.5.1)

  1. 注意检查全局模块的配置路径,是否正确(坑)

cmdpower shell下添加全局模块环境变量

通过以上的配置在git bash下,全局安装的npm模块工作的很正常,但是在cmd或者power shell会发现找不到命令,尝试过添加到系统变量,但是依然不生效,最后提个issues,官方给了解决方案

# 设置完如果不生效,新开一个命令行窗口尝试(如果不行,注销重新登录)
setx PATH "%PATH%;%USERPROFILE%\.npm-global"

设置之后:cmder, cmd , powershell, cygwin通通生效了

注意:

  1. nvs use 是改变当前shell窗口的node版本,不是全局环境(nvm的区别)
  2. nvs link是改变全局环境的node版本

参考

科普文:使用 nvs 管理本地 Node.js 版本

从 nvm 迁移到 nvs

cmder using .bashrc

VS Code Support - Node Version Switcher

xizhibei Node Version Manager

Windows: when use npm prefix share global modules fails

setx

ss64 setx