更新mac的Node版本
# 0.前言
本篇博客的安装步骤完全按照:GitHub-nvm的README.md (opens new window)
# 1.安装nvm
打开
zsh
,开启翻墙模式proxy
1执行
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
1安装成功后,弹出信息
=> If you wish to uninstall them at a later point (or re-install them under your => `nvm` Nodes), you can remove them from the system Node as follows: $ nvm use system $ npm uninstall -g a_module => Close and reopen your terminal to start using nvm or run the following to use it now: export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
1
2
3
4
5
6
7
8
9
10
11以上告诉我们两点:
由于安装前,
zsh
中就已经存在了node
环境,nvm
把这个环境取名为system
使用
nvm current
打印下当前nvm
所处node
环境> nvm current system > node -v v14.17.6
1
2
3
4✅测试通过
安装成功,会自动在
~/.zshrc
文件中添加以下配置:export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
1
2
3通过执行
cat ~/.zshrc
,发现确实在zshrc
文件中被添加了以上字段,✅测试通过。
列出所有
nvm
可安装的版本号nvm ls-remote
1第一次执行:
nvm install <version>
nvm
会默认将第一次安装的node
环境,取alias
为default
。Now using node v10.24.1 (npm v6.4.1) Creating default alias: default -> 10.24.1 (-> v10.24.1)
1
2安装后,查看:
nvm current
nvm current v10.10.0
1
2当然也可以是使用
nvm alias default 8.1.0
重新自定义default
别名。
# 2.Usage
# 安装最新版 node(这是一个alias)
nvm install node
# 安装特定版本的 node
nvm install 14.7.0 # or 16.3.0, 12.22.1, etc
# 安装的第一个版本为默认版本,可以使用ls-remote列出所有可安装的版本
nvm ls-remote
# 列出当前版本
nvm current
# 给不同版本添加别名
nvm alias <name> <version>
# 删除已定义的别名
nvm unalias <name>
# 在新的shell 可以使用use命令
nvm use node
# 或者,使用run来执行特殊的node版本,如
nvm run node --version
# 或者,可以在subsehll环境中,运行任意指定版本的node
nvm exec 4.2 node --version
# 使用 which 获取安装路径
nvm which 12.22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 3.误区:npm和node
在安装nvm
的时候,一直担心它会把原来node
环境上的全局node_modules
给删除掉。
因为当初安装node
的时候,是自带npm
包管理工具的,所以潜意识里头将node
和modules
给绑在一起了。
实际上,nvm
只是起到了一个切换node
版本的目的,只是一个js
执行环境的切换,和modules
没有一点关系。
并且,通过观察npm
安装路径可以发现,它是安装在usr/local/lib
文件夹下的。
# 4.查看环境:node/npm包/npm安装路径
# 查看 node 安装路径
which node
/usr/local/bin/node
# 查看 npm 安装路径
npm root -g
/usr/local/lib/node_modules # 普通
# 查看 npm 安装路径下所有的安装包
npm ls -g --depth 0
/usr/local/lib
├── create-react-app@3.4.1
├── http-server@13.0.2
├── npm@6.14.15
├── nrm@1.2.1
├── nrm@1.2.1
├── pm2@5.1.2
├── serve@13.0.2
├── ts-node-dev@1.1.8
├── verdaccio@5.3.1
├── yarn@1.22.17
# 使用 grep 参数过滤结果
npm ls -g --depth 0 | grep http-server
├── http-server@13.0.2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
编辑 (opens new window)
上次更新: 2022/04/06, 15:04:00