faith丶

导航

基于项目目录局部进行切换node版本工具 - nvm

###

> 前言

npm 安装n命令切换node版本 是全局切换
nvm切换node版本可以基于项目目录局部进行切换

> 下载nvm二进制包

########################################################################
########################################################################
#下载nvm二进制包地址
https://github.com/nvm-sh/nvm/tags

########################################################################
########################################################################
#安装nvm
[root@test01 ~]# mkdir -p /home/wx/nvm-0.39
[root@test01 ~]# cd /home/wx/nvm-0.39
[root@test01 nvm-0.39]# wget https://github.com/nvm-sh/nvm/archive/refs/tags/v0.39.0.tar.gz
[root@test01 nvm-0.39]# tar xf nvm-0.39.0.tar.gz 
[root@test01 nvm-0.39]# ls -l
total 164
drwxrwxr-x 4 root root 4096 Oct 8 01:11 nvm-0.39.0
-rw-r--r-- 1 root root 163076 Nov 11 11:25 nvm-0.39.0.tar.gz

> 安装nvm

########################################################################
########################################################################
[root@test01 nvm-0.39.0]# cd /home/wx/nvm-0.39/nvm-0.39.0
[root@test01 nvm-0.39.0]# ls -l
total 252
-rw-rw-r-- 1 root root   2299 Oct  8 01:11 bash_completion
-rw-rw-r-- 1 root root   5424 Oct  8 01:11 CODE_OF_CONDUCT.md
-rw-rw-r-- 1 root root   1057 Oct  8 01:11 CONTRIBUTING.md
-rw-rw-r-- 1 root root   3691 Oct  8 01:11 Dockerfile
-rw-rw-r-- 1 root root    467 Oct  8 01:11 GOVERNANCE.md
-rwxrwxr-x 1 root root  14984 Oct  8 01:11 install.sh
-rw-rw-r-- 1 root root   1113 Oct  8 01:11 LICENSE.md
-rw-rw-r-- 1 root root   5361 Oct  8 01:11 Makefile
-rwxrwxr-x 1 root root    351 Oct  8 01:11 nvm-exec
-rw-rw-r-- 1 root root 138067 Oct  8 01:11 nvm.sh
-rw-rw-r-- 1 root root   2371 Oct  8 01:11 package.json
-rw-rw-r-- 1 root root   2935 Oct  8 01:11 PROJECT_CHARTER.md
-rw-rw-r-- 1 root root  40684 Oct  8 01:11 README.md
-rwxrwxr-x 1 root root   1235 Oct  8 01:11 rename_test.sh
-rw-rw-r-- 1 root root    882 Oct  8 01:11 ROADMAP.md
drwxrwxr-x 9 root root    148 Oct  8 01:11 test
-rwxrwxr-x 1 root root   2364 Oct  8 01:11 update_test_mocks.sh
########################################################################
########################################################################
# 安装nvm
[root@test01 nvm-0.39.0]# sh install.sh 
=> Downloading nvm from git to '/root/.nvm'
=> Cloning into '/root/.nvm'...
remote: Enumerating objects: 348, done.
remote: Counting objects: 100% (348/348), done.
remote: Compressing objects: 100% (297/297), done.
remote: Total 348 (delta 39), reused 162 (delta 26), pack-reused 0
Receiving objects: 100% (348/348), 210.62 KiB | 0 bytes/s, done.
Resolving deltas: 100% (39/39), done.
* (detached from FETCH_HEAD)
  master
=> Compressing and cleaning up git repository
=> Appending nvm source string to /root/.bashrc
=> Appending bash_completion source string to /root/.bashrc
=> 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
########################################################################
########################################################################
[root@test01 nvm-0.39.0]# source /root/.bashrc 

########################################################################
########################################################################
[root@test01 nvm-0.39.0]# nvm -v
0.39.0

 

 > Linux的root权限安装nvm后可用,切换用户以后报nvm: command not found解决办法

在root环境下安装nvm,一切正常,但是我切换成普通用户以后,就会报命令找不到,命令找不到肯定就是路径的问题。
以下就是解决办法:
1.首先root环境下,打开~/.bashrc文件,你会看到NVM_DIR,这就是nvm的安装路径。其中有个$HOME这个路径。然后我就去命令行打印了一下$HOME,结果如下:
之后我又切换了普通用户也查看了$HOME,查看结果如下:
两个$HOME都不一样,肯定引不到啊,而且/root下的文件只有root权限才可以访问。
2.将/root/.nvm文件夹移动到了/home/wx/nvm-0.39/(也可以移到别的文件夹下,需要修改文件夹权限为普通用户权限,该路径在环境变量中)下,
然后修改~/.bashrc文件,将$HOME改成/home/wx/nvm-0.39
[root@test01 ~]# vim /root/.bashrc
.....
export NVM_DIR="/home/wx/nvm-0.39.0/.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
...

[wx@test01 ~]# vim /home/wx/.bashrc
...
export NVM_DIR="/home/wx/nvm-0.39.0/.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 ... 3.重启~/.bashrc文件 [root@test01 ~]# source /root/.bashrc
[wx@test01 ~]# source /home/wx/.bashrc
4.查看nvm版本
[root@test01 ~]# nvm -v
0.39.0
[wx@test01 ~]# nvm -v
0.39.0

 > 注释

执行sh脚本bash: nvm: command not found...
在终端直接执行nvm没问题,执行shell脚本中的nvm提示bash: nvm: command not found…

原因:nvm是一个脚本不是指令,所以shell脚本中执行nvm会提示bash: nvm: command not found… 解决:只需在执行nvm前加一行指令即可解决问题:不将输出内容输出到空会在终端页面打印很多信息 source
/home/wx/nvm-0.39/.nvm/nvm.sh [root@test01 ~]# cat implement.sh #!/bin/bash source /home/wx/nvm-0.39.0/.nvm/nvm.sh >/dev/null 2>&1 nvm install v14.17.0 >/dev/null 2>&1 nvm use v14.17.0 >/dev/null 2>&1 注意: /home/wx/nvm-0.39/.nvm是nvm的安装路径,需要写nvm的实际安装路径,可以用find / -name “.nvm” 来查找nvm的安装目录

> nvm 常用命令

nvm install 14.17.0        //安装 node 14.17.0版本
nvm uninstall v14.13.2 // 移除 node 6.11.0版本 nvm use 14.13.2 // 切换并使用 node 6.11.0 nvm ls // 查看目前已安装的 node 及当前所使用的 node nvm ls-remote // 查看目前线上所能安装的所有 node 版本 nvm alias default 14.13.2 // 使用 6.11.0 作为预设使用的 node 版本

 

 

###

 

posted on 2021-11-11 13:19  faith丶  阅读(623)  评论(0编辑  收藏  举报