node版本管理工具nvm常见用法

释放双眼,带上耳机,听听看~!

# node 版本管理工具 nvm 常见用法

本文总结 nodejs 的版本管理工具 nvm 的常见用法。使用 nvm 不仅可以方便得管理多个 nodejs 版本, 还方便在同一台机器上管理基于不同 node 版本的多个项目(借助.nvmrc 文件)。

# 1. 安装指定版本的 node

# 1.1 安装稳定版本

nvm install stable

# 1.2 安装指定版本号

nvm install 版本号

(py3.6) wangshibiao@wangshibiao:~$ nvm install v15.0.1
Downloading and installing node v15.0.1...
Downloading https://npm.taobao.org/mirrors/node/v15.0.1/node-v15.0.1-linux-x64.tar.xz...
################################################################################################################################ 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v15.0.1 (npm v7.0.3)
(py3.6) wangshibiao@wangshibiao:~$ nvm ls
        v6.11.0
        v6.11.4
        v6.17.1
        v7.10.1
        v8.15.1
        v10.1.0
       v11.13.0
        v13.0.1
->      v15.0.1
default -> v13.0.1
node -> stable (-> v15.0.1) (default)
stable -> 15.0 (-> v15.0.1) (default)
iojs -> N/A (default)
lts/* -> lts/erbium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.22.1 (-> N/A)
lts/erbium -> v12.19.0 (-> N/A)
(py3.6) wangshibiao@wangshibiao:~$

将版本号替换为具体版本号即可。

# 2. 查询本地已安装的 node 版本列表

nvm ls

(py3.6) wangshibiao@wangshibiao:~$ nvm ls
        v6.11.0
        v6.11.4
        v6.17.1
        v7.10.1
        v8.15.1
        v10.1.0
       v11.13.0
->      v13.0.1
default -> v13.0.1
node -> stable (-> v13.0.1) (default)
stable -> 13.0 (-> v13.0.1) (default)
iojs -> N/A (default)
lts/* -> lts/erbium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.22.1 (-> N/A)
lts/erbium -> v12.19.0 (-> N/A)
(py3.6) wangshibiao@wangshibiao:~$

左侧有箭头->的版本代表当前的 node 版本。

# 3. 查询远程的 node 版本列表

执行如下命令查看官方的 node 版本列表,这样就可以查询到当前最新的 node 版本号。
nvm ls-remote

(py3.6) wangshibiao@wangshibiao:~$ nvm ls-remote
        v0.1.14
        v0.1.15
        v0.1.16
        v0.1.17
        v0.1.18
        v0.1.19
        v0.1.20
        v0.1.21
        v0.1.22
        v0.1.23
        v0.1.24
        v0.1.25
        v0.1.26
        v0.1.27
        v0.1.28
        v0.1.29
        v0.1.30
        v0.1.31
        v0.1.32
        v0.1.33
        v0.1.90
        v0.1.91
        v0.1.92
        v0.1.93
        v0.1.94
        v0.1.95
        v0.1.96
        v0.1.97
        v0.1.98
        v0.1.99
       v0.1.100
       v0.1.101
       v0.1.102
       v0.1.103
       v0.1.104
         v0.2.0
         v0.2.1
         v0.2.2
         v0.2.3
         v0.2.4
         v0.2.5
         v0.2.6
         v0.3.0
         v0.3.1
         v0.3.2
         v0.3.3
         v0.3.4
         v0.3.5
         v0.3.6
         v0.3.7
         v0.3.8
         v0.4.0
         v0.4.1
         v0.4.2
         v0.4.3
         v0.4.4
         v0.4.5
         v0.4.6
         v0.4.7
         v0.4.8
         v0.4.9
        v0.4.10
        v0.4.11
        v0.4.12
         v0.5.0
         v0.5.1
         v0.5.2
         v0.5.3
         v0.5.4
         v0.5.5
         v0.5.6
         v0.5.7
         v0.5.8
         v0.5.9
        v0.5.10
         v0.6.0
         v0.6.1
         v0.6.2
         v0.6.3
         v0.6.4
         v0.6.5
         v0.6.6
         v0.6.7
         v0.6.8
         v0.6.9
        v0.6.10
        v0.6.11
        v0.6.12
        v0.6.13
        v0.6.14
        v0.6.15
        v0.6.16
        v0.6.17
        v0.6.18
        v0.6.19
        v0.6.20
        v0.6.21
         v0.7.0
         v0.7.1
         v0.7.2
         v0.7.3
         v0.7.4
         v0.7.5
         v0.7.6
         v0.7.7
         v0.7.8
         v0.7.9
        v0.7.10
        v0.7.11
        v0.7.12
         v0.8.0
         v0.8.1
         v0.8.2
         v0.8.3
         v0.8.4
         v0.8.5
         v0.8.6
         v0.8.7
         v0.8.8
         v0.8.9
        v0.8.10
        v0.8.11
        v0.8.12
        v0.8.13
        v0.8.14
        v0.8.15
        v0.8.16
        v0.8.17
        v0.8.18
        v0.8.19
        v0.8.20
        v0.8.21
        v0.8.22
        v0.8.23
        v0.8.24
        v0.8.25
        v0.8.26
        v0.8.27
        v0.8.28
         v0.9.0
         v0.9.1
         v0.9.2
         v0.9.3
         v0.9.4
         v0.9.5
         v0.9.6
         v0.9.7
         v0.9.8
         v0.9.9
        v0.9.10
        v0.9.11
        v0.9.12
        v0.10.0
        v0.10.1
        v0.10.2
        v0.10.3
        v0.10.4
        v0.10.5
        v0.10.6
        v0.10.7
        v0.10.8
        v0.10.9
       v0.10.10
       v0.10.11
       v0.10.12
       v0.10.13
       v0.10.14
       v0.10.15
       v0.10.16
       v0.10.17
       v0.10.18
       v0.10.19
       v0.10.20
       v0.10.21
       v0.10.22
       v0.10.23
       v0.10.24
       v0.10.25
       v0.10.26
       v0.10.27
       v0.10.28
       v0.10.29
       v0.10.30
       v0.10.31
       v0.10.32
       v0.10.33
       v0.10.34
       v0.10.35
       v0.10.36
       v0.10.37
       v0.10.38
       v0.10.39
       v0.10.40
       v0.10.41
       v0.10.42
       v0.10.43
       v0.10.44
       v0.10.45
       v0.10.46
       v0.10.47
       v0.10.48
        v0.11.0
        v0.11.1
        v0.11.2
        v0.11.3
        v0.11.4
        v0.11.5
        v0.11.6
        v0.11.7
        v0.11.8
        v0.11.9
       v0.11.10
       v0.11.11
       v0.11.12
       v0.11.13
       v0.11.14
       v0.11.15
       v0.11.16
        v0.12.0
        v0.12.1
        v0.12.2
        v0.12.3
        v0.12.4
        v0.12.5
        v0.12.6
        v0.12.7
        v0.12.8
        v0.12.9
       v0.12.10
       v0.12.11
       v0.12.12
       v0.12.13
       v0.12.14
       v0.12.15
       v0.12.16
       v0.12.17
       v0.12.18
    iojs-v1.0.0
    iojs-v1.0.1
    iojs-v1.0.2
    iojs-v1.0.3
    iojs-v1.0.4
    iojs-v1.1.0
    iojs-v1.2.0
    iojs-v1.3.0
    iojs-v1.4.1
    iojs-v1.4.2
    iojs-v1.4.3
    iojs-v1.5.0
    iojs-v1.5.1
    iojs-v1.6.0
    iojs-v1.6.1
    iojs-v1.6.2
    iojs-v1.6.3
    iojs-v1.6.4
    iojs-v1.7.1
    iojs-v1.8.1
    iojs-v1.8.2
    iojs-v1.8.3
    iojs-v1.8.4
    iojs-v2.0.0
    iojs-v2.0.1
    iojs-v2.0.2
    iojs-v2.1.0
    iojs-v2.2.0
    iojs-v2.2.1
    iojs-v2.3.0
    iojs-v2.3.1
    iojs-v2.3.2
    iojs-v2.3.3
    iojs-v2.3.4
    iojs-v2.4.0
    iojs-v2.5.0
    iojs-v3.0.0
    iojs-v3.1.0
    iojs-v3.2.0
    iojs-v3.3.0
    iojs-v3.3.1
         v4.0.0
         v4.1.0
         v4.1.1
         v4.1.2
         v4.2.0   (LTS: Argon)
         v4.2.1   (LTS: Argon)
         v4.2.2   (LTS: Argon)
         v4.2.3   (LTS: Argon)
         v4.2.4   (LTS: Argon)
         v4.2.5   (LTS: Argon)
         v4.2.6   (LTS: Argon)
         v4.3.0   (LTS: Argon)
         v4.3.1   (LTS: Argon)
         v4.3.2   (LTS: Argon)
         v4.4.0   (LTS: Argon)
         v4.4.1   (LTS: Argon)
         v4.4.2   (LTS: Argon)
         v4.4.3   (LTS: Argon)
         v4.4.4   (LTS: Argon)
         v4.4.5   (LTS: Argon)
         v4.4.6   (LTS: Argon)
         v4.4.7   (LTS: Argon)
         v4.5.0   (LTS: Argon)
         v4.6.0   (LTS: Argon)
         v4.6.1   (LTS: Argon)
         v4.6.2   (LTS: Argon)
         v4.7.0   (LTS: Argon)
         v4.7.1   (LTS: Argon)
         v4.7.2   (LTS: Argon)
         v4.7.3   (LTS: Argon)
         v4.8.0   (LTS: Argon)
         v4.8.1   (LTS: Argon)
         v4.8.2   (LTS: Argon)
         v4.8.3   (LTS: Argon)
         v4.8.4   (LTS: Argon)
         v4.8.5   (LTS: Argon)
         v4.8.6   (LTS: Argon)
         v4.8.7   (LTS: Argon)
         v4.9.0   (LTS: Argon)
         v4.9.1   (Latest LTS: Argon)
         v5.0.0
         v5.1.0
         v5.1.1
         v5.2.0
         v5.3.0
         v5.4.0
         v5.4.1
         v5.5.0
         v5.6.0
         v5.7.0
         v5.7.1
         v5.8.0
         v5.9.0
         v5.9.1
        v5.10.0
        v5.10.1
        v5.11.0
        v5.11.1
        v5.12.0
         v6.0.0
         v6.1.0
         v6.2.0
         v6.2.1
         v6.2.2
         v6.3.0
         v6.3.1
         v6.4.0
         v6.5.0
         v6.6.0
         v6.7.0
         v6.8.0
         v6.8.1
         v6.9.0   (LTS: Boron)
         v6.9.1   (LTS: Boron)
         v6.9.2   (LTS: Boron)
         v6.9.3   (LTS: Boron)
         v6.9.4   (LTS: Boron)
         v6.9.5   (LTS: Boron)
        v6.10.0   (LTS: Boron)
        v6.10.1   (LTS: Boron)
        v6.10.2   (LTS: Boron)
        v6.10.3   (LTS: Boron)
        v6.11.0   (LTS: Boron)
        v6.11.1   (LTS: Boron)
        v6.11.2   (LTS: Boron)
        v6.11.3   (LTS: Boron)
        v6.11.4   (LTS: Boron)
        v6.11.5   (LTS: Boron)
        v6.12.0   (LTS: Boron)
        v6.12.1   (LTS: Boron)
        v6.12.2   (LTS: Boron)
        v6.12.3   (LTS: Boron)
        v6.13.0   (LTS: Boron)
        v6.13.1   (LTS: Boron)
        v6.14.0   (LTS: Boron)
        v6.14.1   (LTS: Boron)
        v6.14.2   (LTS: Boron)
        v6.14.3   (LTS: Boron)
        v6.14.4   (LTS: Boron)
        v6.15.0   (LTS: Boron)
        v6.15.1   (LTS: Boron)
        v6.16.0   (LTS: Boron)
        v6.17.0   (LTS: Boron)
        v6.17.1   (Latest LTS: Boron)
         v7.0.0
         v7.1.0
         v7.2.0
         v7.2.1
         v7.3.0
         v7.4.0
         v7.5.0
         v7.6.0
         v7.7.0
         v7.7.1
         v7.7.2
         v7.7.3
         v7.7.4
         v7.8.0
         v7.9.0
        v7.10.0
        v7.10.1
         v8.0.0
         v8.1.0
         v8.1.1
         v8.1.2
         v8.1.3
         v8.1.4
         v8.2.0
         v8.2.1
         v8.3.0
         v8.4.0
         v8.5.0
         v8.6.0
         v8.7.0
         v8.8.0
         v8.8.1
         v8.9.0   (LTS: Carbon)
         v8.9.1   (LTS: Carbon)
         v8.9.2   (LTS: Carbon)
         v8.9.3   (LTS: Carbon)
         v8.9.4   (LTS: Carbon)
        v8.10.0   (LTS: Carbon)
        v8.11.0   (LTS: Carbon)
        v8.11.1   (LTS: Carbon)
        v8.11.2   (LTS: Carbon)
        v8.11.3   (LTS: Carbon)
        v8.11.4   (LTS: Carbon)
        v8.12.0   (LTS: Carbon)
        v8.13.0   (LTS: Carbon)
        v8.14.0   (LTS: Carbon)
        v8.14.1   (LTS: Carbon)
        v8.15.0   (LTS: Carbon)
        v8.15.1   (LTS: Carbon)
        v8.16.0   (LTS: Carbon)
        v8.16.1   (LTS: Carbon)
        v8.16.2   (LTS: Carbon)
        v8.17.0   (Latest LTS: Carbon)
         v9.0.0
         v9.1.0
         v9.2.0
         v9.2.1
         v9.3.0
         v9.4.0
         v9.5.0
         v9.6.0
         v9.6.1
         v9.7.0
         v9.7.1
         v9.8.0
         v9.9.0
        v9.10.0
        v9.10.1
        v9.11.0
        v9.11.1
        v9.11.2
        v10.0.0
        v10.1.0
        v10.2.0
        v10.2.1
        v10.3.0
        v10.4.0
        v10.4.1
        v10.5.0
        v10.6.0
        v10.7.0
        v10.8.0
        v10.9.0
       v10.10.0
       v10.11.0
       v10.12.0
       v10.13.0   (LTS: Dubnium)
       v10.14.0   (LTS: Dubnium)
       v10.14.1   (LTS: Dubnium)
       v10.14.2   (LTS: Dubnium)
       v10.15.0   (LTS: Dubnium)
       v10.15.1   (LTS: Dubnium)
       v10.15.2   (LTS: Dubnium)
       v10.15.3   (LTS: Dubnium)
       v10.16.0   (LTS: Dubnium)
       v10.16.1   (LTS: Dubnium)
       v10.16.2   (LTS: Dubnium)
       v10.16.3   (LTS: Dubnium)
       v10.17.0   (LTS: Dubnium)
       v10.18.0   (LTS: Dubnium)
       v10.18.1   (LTS: Dubnium)
       v10.19.0   (LTS: Dubnium)
       v10.20.0   (LTS: Dubnium)
       v10.20.1   (LTS: Dubnium)
       v10.21.0   (LTS: Dubnium)
       v10.22.0   (LTS: Dubnium)
       v10.22.1   (Latest LTS: Dubnium)
        v11.0.0
        v11.1.0
        v11.2.0
        v11.3.0
        v11.4.0
        v11.5.0
        v11.6.0
        v11.7.0
        v11.8.0
        v11.9.0
       v11.10.0
       v11.10.1
       v11.11.0
       v11.12.0
       v11.13.0
       v11.14.0
       v11.15.0
        v12.0.0
        v12.1.0
        v12.2.0
        v12.3.0
        v12.3.1
        v12.4.0
        v12.5.0
        v12.6.0
        v12.7.0
        v12.8.0
        v12.8.1
        v12.9.0
        v12.9.1
       v12.10.0
       v12.11.0
       v12.11.1
       v12.12.0
       v12.13.0   (LTS: Erbium)
       v12.13.1   (LTS: Erbium)
       v12.14.0   (LTS: Erbium)
       v12.14.1   (LTS: Erbium)
       v12.15.0   (LTS: Erbium)
       v12.16.0   (LTS: Erbium)
       v12.16.1   (LTS: Erbium)
       v12.16.2   (LTS: Erbium)
       v12.16.3   (LTS: Erbium)
       v12.17.0   (LTS: Erbium)
       v12.18.0   (LTS: Erbium)
       v12.18.1   (LTS: Erbium)
       v12.18.2   (LTS: Erbium)
       v12.18.3   (LTS: Erbium)
       v12.18.4   (LTS: Erbium)
       v12.19.0   (Latest LTS: Erbium)
        v13.0.0
->      v13.0.1
        v13.1.0
        v13.2.0
        v13.3.0
        v13.4.0
        v13.5.0
        v13.6.0
        v13.7.0
        v13.8.0
        v13.9.0
       v13.10.0
       v13.10.1
       v13.11.0
       v13.12.0
       v13.13.0
       v13.14.0
        v14.0.0
        v14.1.0
        v14.2.0
        v14.3.0
        v14.4.0
        v14.5.0
        v14.6.0
        v14.7.0
        v14.8.0
        v14.9.0
       v14.10.0
       v14.10.1
       v14.11.0
       v14.12.0
       v14.13.0
       v14.13.1
       v14.14.0
        v15.0.0
        v15.0.1
(py3.6) wangshibiao@wangshibiao:~$

左侧有箭头->的版本代表当前的 node 版本。

# 4. 切换本地的 node 版本

nvm use 版本号

(py3.6) wangshibiao@wangshibiao:~$ nvm ls
        v6.11.0
        v6.11.4
        v6.17.1
        v7.10.1
        v8.15.1
        v10.1.0
       v11.13.0
        v13.0.1
->      v15.0.1
default -> v13.0.1
node -> stable (-> v15.0.1) (default)
stable -> 15.0 (-> v15.0.1) (default)
iojs -> N/A (default)
lts/* -> lts/erbium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.22.1 (-> N/A)
lts/erbium -> v12.19.0 (-> N/A)
(py3.6) wangshibiao@wangshibiao:~$ nvm use v13.0.1
Now using node v13.0.1 (npm v6.12.0)
(py3.6) wangshibiao@wangshibiao:~$ nvm ls
        v6.11.0
        v6.11.4
        v6.17.1
        v7.10.1
        v8.15.1
        v10.1.0
       v11.13.0
->      v13.0.1
        v15.0.1
default -> v13.0.1
node -> stable (-> v15.0.1) (default)
stable -> 15.0 (-> v15.0.1) (default)
iojs -> N/A (default)
lts/* -> lts/erbium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.22.1 (-> N/A)
lts/erbium -> v12.19.0 (-> N/A)
(py3.6) wangshibiao@wangshibiao:~$

# 5. 设置 shell 的默认 node 版本

可以设置 shell 环境的默认 node 版本。当我们频繁使用某一个版本时,我们可以设置该版本为默认版本,就没必要经常切换版本了。
执行如下命令设置默认版本号。
nvm alias default 版本号

(py3.6) wangshibiao@wangshibiao:~$ nvm alias default v15.0.1
default -> v15.0.1
(py3.6) wangshibiao@wangshibiao:~$

# 6. 查询当前的版本号

nvm current

(py3.6) wangshibiao@wangshibiao:~$ nvm current
v13.0.1
(py3.6) wangshibiao@wangshibiao:~$

# 7. 在当前 node 版本中安装全局组件

在 nvm 管理下,实现以沙箱方式全局安装第三方组件到对应版本的 node 中。

非 nvm 管理的情况下,全局组件统统安装在/usr/local/lib/node_modules 目录下。如果希望不同的 node 版本安装在不同的目录下,那是无法实现的。  
在 nvm 管理下,全局组件会安装到~/.nvm/versions/node/目录的当前版本 node 下。这是 nvm 强大的地方,在多运行环境的管理和切换极为好用。

  • 执行如下命令,会将对应组件安装在 v0.12.4 版本下
nvm use v0.12.4
npm install -g express-generator@3
  • 执行如下命令,会将对应组件安装在 v6.3.0 版本下
nvm use v6.3.0
npm install -g express-generator

# 8. 使用.nvmrc 配置不同项目的 node 版本

为项目配置.nvmrc 文件,有 2 点好处:

  • 可以清晰的知道项目基于的 node 版本
    我们很有必要为各自的项目指明 node 版本,否则时间久远,甚至开发人员都无法确定项目需要的 node 版本, 那么带来的问题可能就是无法运行或出现各种版本兼容错误,这是很可怕的。
  • 方便在同一台机器上管理基于不同 node 版本的多个项目

# 8.1 配置方法

在项目的根目录下创建文件.nvmrc,文件中指明版本号即可。

echo 13 > ./.nvmrc

将版本号替换为实际版本号即可。

# 8.2 运行项目

有 2 种运行方法。

# 8.2.1 先使用 nvm use 切换版本

在项目根目录下执行nvm use,会自动切换当前 node 版本为.nvmrc 配置文件指定的版本。

(py3.6) wangshibiao@wangshibiao:~/test/nodejsDemo$ echo 13 > ./.nvmrc
(py3.6) wangshibiao@wangshibiao:~/test/nodejsDemo$ nvm current
v15.0.1
(py3.6) wangshibiao@wangshibiao:~/test/nodejsDemo$ nvm use
Found '/home/wangshibiao/test/nodejsDemo/.nvmrc' with version 
Now using node v13.0.1 (npm v6.12.0)
(py3.6) wangshibiao@wangshibiao:~/test/nodejsDemo$ nvm current
v13.0.1
(py3.6) wangshibiao@wangshibiao:~/test/nodejsDemo$

# 8.2.1 通过 nvm run 直接运行 js 脚本

语法: nvm run js 文件路径

如下示例,演示 demo.js 的运行过程,可以看出,运行 demo.js 所基于的 node 环境并不受当前系统的默认 node 版本影响。

(py3.6) wangshibiao@wangshibiao:~/test/nodejsDemo$ ll
总用量 24
drwxrwxr-x  2 wangshibiao wangshibiao  4096 10月 23 16:02 ./
drwxrwxr-x 33 wangshibiao wangshibiao 12288 10月 23 15:50 ../
-rw-rw-r--  1 wangshibiao wangshibiao    31 10月 23 15:51 demo.js
-rw-rw-r--  1 wangshibiao wangshibiao     3 10月 23 16:02 .nvmrc
(py3.6) wangshibiao@wangshibiao:~/test/nodejsDemo$ cat .nvmrc
13
(py3.6) wangshibiao@wangshibiao:~/test/nodejsDemo$ nvm current
v15.0.1
(py3.6) wangshibiao@wangshibiao:~/test/nodejsDemo$ cat ./demo.js
console.log(process.versions);
(py3.6) wangshibiao@wangshibiao:~/test/nodejsDemo$ nvm run ./demo.js
Found '/home/wangshibiao/test/nodejsDemo/.nvmrc' with version 
Running node v13.0.1 (npm v6.12.0)
{
  node: '13.0.1',
  v8: '7.8.279.17-node.14',
  uv: '1.33.1',
  zlib: '1.2.11',
  brotli: '1.0.7',
  ares: '1.15.0',
  modules: '79',
  nghttp2: '1.39.2',
  napi: '5',
  llhttp: '1.1.4',
  openssl: '1.1.1d',
  cldr: '35.1',
  icu: '64.2',
  tz: '2019a',
  unicode: '12.1'
}
(py3.6) wangshibiao@wangshibiao:~/test/nodejsDemo$

文章来源于互联网:
node版本管理工具nvm常见用法

人已赞赏
学习笔记技术杂烩杂七杂八

linux安装golang开发环境

2020-10-30 19:34:19

学习笔记技术杂烩杂七杂八

搭建分布式对象存储服务MinIO-单点模式

2020-10-30 19:34:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索