背景
老项目所需node环境版本低;
新项目所需node环境版本高;
开发中需要来回切换node版本;
使用node版本管理插件nvm
nvm 安装
nvm 有两种安装方式,建议通过源码方式安装
一种是通过 brew install nvm
1 | brew install nvm |
另一种方式通过命令拉取 nvm 相关源码命令,仓库链接在此 https://github.com/nvm-sh/nvm
源码也有两种下载方式,任选
1 | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash |
1 | wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash |
无论哪种方式,安装成功后, 都需要配置环境变量!!!
1 | mkdir ~/.nvm //可能安装时自动创建了这个文件,如果有,就不用再建了 |
复制提示信息里的内容,下图红框所示,然后添加到 ~/.zshrc这个文件里
1 | //brew 安装方式的环境变量 |
添加以上内容并保存后,执行以下命令,令这个文件生效
1 | source ~/.zshrc |
source 之后,关闭终端,重新打开终端,可能会出现如下安全提示
1 | zsh compinit: insecure directories, run compaudit for list. |
如果选择忽略并继续,那每次打开终端都会再次提示,很烦。
那就按照提示,查看下哪些文件有问题。执行compaudit
1 | compaudit |
得到如下结果:
1 | There are insecure directories: |
执行如下命令修改权限
1 | cd /usr/local/share/zsh |
再次执行 source ~/.zshrc,关闭终端,重新打开终端,
如果问题还未解决,那就还需要修改 site-functions 的权限。
OSX 10.9 以上系统执行如下命令(user:staff 是 OSX 系统默认权限):
1 | $ cd /usr/local/share/ |
OSX 10.9 及以下系统执行如下命令:
1 | $ cd /usr/local/share/ |
再次执行 source ~/.zshrc ,关闭终端,重新打开终端,我实操过程到这里就没问题了。
brew方式安装过程,实操截图:
brew方式安装
源码方式安装过程,实操截图:
源码方式安装
安装成功后,通过 nvm ls-remote 查看 node 所有版本
1 | v16.7.0 |
nvm install xx.xx.xx (版本号) 安装指定版本 node
1 | nvm install 17.3.0 |
安装成功后 nvm ls 可以查看已经安装到本地的node版本
1 | nvm ls |
nvm use node 使用本地最新node环境
nvm use 17.3.0 指定版本node环境
nvm 常用命令
- nvm list 查看已经安装的版本
- nvm list installed 查看已经安装的版本
- nvm list available 查看网络可以安装的版本
- nvm version 查看当前的版本
- 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,如果不设置的默认是 https://nodejs.org/dist/
- nvm npm_mirror [url] 设置或者查看setting.txt中的npm_mirror,如果不设置的话默认的是: https://github.com/npm/npm/archive/.
- nvm uninstall
卸载制定的版本 - nvm use [version] [arch] 切换制定的node版本和位数
- nvm root [path] 设置和查看root路径
- 注:nvm 只能查看和切换 通过nvm 安装的 node 环境,通过其他方式安装的node 不能查看