背景
最近新开始了一个人项目,代码编译要求更低版本的node,卸载当前的node重装,再重头设置环境变量显然不是灵活的解决方案
解决方案
决定使用NVS,NVS是Node Version Switcher的简写,它的代码受自其他版本控制工具的启发,尤其是nvm的影响,并在此基础上实现了跨平台的优势。
安装与使用
接下来分别谈谈在Windows和MacOS环境下的安装和使用心得。
Windows
-
下载nvs
到Github代码仓库NVS发行页面,每个发行版本都有对应的Release Notes和不同类型的下载资源Assets,我选择的是当前最新版本 v.1.6.0 ,到Assets单击nvs-1.6.0.msi,在弹出窗口选择保存文件 -
安装nvs
下载完成之后,单击.msi文件即可完成安装 -
GitBash环境配置
-
在安装git的路径下查找是否存在.bash_profile文件,或新建.bash_profile文件,并加入以下代码
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
-
在同一文件路径查找或新建.bashrc文件,并加入如下代码
export NVS_HOME=$LOCALAPPDATA/nvs . $NVS_HOME/nvs.sh
在我的环境中,$LOCALAPPDATA=C:/Users/Xiayidan/AppData/Local
- 用户命令符(CMD)环境配置
- 定义安装路径,运行以下指令
单用户安装时:
系统安装时:set NVS_HOME=%LOCALAPPDATA%\nvs
set NVS_HOME=%ProgramData%\nvs
- 安装,运行一下指令
"%NVS_HOME%\nvs.cmd" install
- PowerShell环境配置
- 定义安装路径,运行以下指令
单用户安装时:
系统安装时:$env:NVS_HOME="$env:LOCALAPPDATA\nvs"
$env:NVS_HOME="$env:ProgramData\nvs"
- 安装,运行一下指令
. "$env:NVS_HOME\nvs.ps1" install
- 使用nvs
进行了以上的步骤之后,就可以打开任意一个shell终端,使用nvs的命令行增加,删除不同版本的Node,并且随意切换了.
MacOS
- 指定安装路径,克隆repo,并输入安装命令:
export NVS_HOME="$HOME/.nvs"
git clone https://gitee.com/wsz7777/nvs "$NVS_HOME"
. "$NVS_HOME/nvs.sh" install
- 这个 nvs.sh 是向环境变量中添加 nvs 的shell方法. 执行这个脚本后,你就可以在命令行中直接使用 nvs 了。
- 完成以上步骤,在关闭重新打开终端时,依然会报错nvs is not a command,那是因为我们没有将nvs的可执行代码放在指令运行环境中。解决方法时添加这个 install 命令至 ~/.bashrc, ~/.profile, 或者 ~/.zshrc 文件中。 以便该 nvs 功能在你的 shell 中可用,.zshrc文件的情况,可以参考以下步骤进行:
- 在终端运行
open -e .zshrc
- 若无法打开.zshrc文件,需要创建一个
touche .zshrc
- 创建好之后,再重复步骤4的指令打开.zshrc文件,开始编辑,添加以下内容:
export NVS_HOME="$HOME/.nvs"
git clone https://gitee.com/wsz7777/nvs "$NVS_HOME"
. "$NVS_HOME/nvs.sh" install
- 无论何时,都可以在终端直接访问到nvs的指令
对于 ksh, 这个脚本 nvs.sh 需要添加到 ~/.kshrc 中,或者是 $ENV 的地方。