一、node
、nvm
、npm
、npx
、nrm
区别
node
:是一个基于Chrome V8
引擎的JS
运行环境。npm
:是node.js
默认的包管理系统(用JavaScript
编写的),在安装的node
的时候,npm
也会跟着一起安装,管理node
中的第三方插件。npx
:npm
从v5.2.0
开始新增了npx
命令,>=
该版本会自动安装npx
,附带:npx 有什么作用跟意义?为什么要有 npx?什么场景使用?。nrm
:是一个npm
源管理工具,使用它可以快速切换npm
源,默认是官方源,当npm
下载包过慢时,可能需要切换到第三方源(例如:淘宝、科大…),还有公司私有源地址等等。nvm
:node
版本管理器,也就是说:一个nvm
可以管理多个node
版本(包含npm
与npx
),可以方便快捷的安装
、切换
不同版本的node
。
二、node
、nvm
、npm
、npx
、nrm
关系
nvm
管理node
(包含npm
与npx
) 的版本,npm
可以管理node
的第三方插件,nrm
可以管理npm
的源地址(当然也可以直接使用npm
自带命令管理,看个人习惯)。- 切换不同的
node
版本,npm
与npx
的版本也会跟着变化。
$ nvm use v8.16.0 Now using node v8.16.0 (npm v6.4.1) $ nvm use v14.15.4 Now using node v14.15.4 (npm v6.14.10) $ nvm use v18.6.0 Now using node v18.6.0 (npm v8.13.2)
三、安装 nvm
- nvm 官方文档,nvm 卸载详细流程,
Mac
推荐HomeBrew
安装,方便更新管理,其他随意能装上就行,附带:Mac Homebrew 安装与卸载。 - 安装方式一:
Mac HomeBrew
安装
如果安装没问题,按照安装方式三
中除安装部分外,配置好当前解释器需要的nvm
配置。
$ brew install nvm
- 安装方式二:命令安装
但是这边网不是很好,一直停在安装页面没动静,所以后面选择了手动安装
。
如果安装没问题按照安装方式三
中除安装部分外,配置好当前解释器需要的nvm
配置。
下面的安装路径,在 nvm 官方文档 中有。
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash 或 $ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
- 附带:(下面后面找到的替代方案,安装源都换成国内的,尤其是在服务器上进行安装时,网络不行的情况下,可以使用下面这个)
# 安装 $ bash -c "$(curl -fsSL https://gitee.com/RubyKids/nvm-cn/raw/master/install.sh)" # 卸载 $ bash -c "$(curl -fsSL https://gitee.com/RubyKids/nvm-cn/raw/master/uninstall.sh)"
- (
推荐
)安装方式三:手动安装1、下载官方 Git nvm2、解压文件找到install.sh
3、执行命令,将install.sh
路径放到下面命令中回车运行。
$ sh xxx/instal.sh
- 4、然后等待,安装完成之后。
(没有提示则看下一步)
如果提示没有找到对应解释器的配置文件,则需要手动创建一个当前解释器的配置文件,如果不清楚可以看下这篇文章Shell 切换解释器,查看当前解释器
=> Profile not found. Tried ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile.
- 知道属于什么解释器之后,没有则手动创建一个,这里以
zsh
解释器举例:
# 创建 zsh 配置文件 $ touch ~/.zshrc # 编辑配置文件 $ vim ~/.zshrc
- 5、如果解释器存在配置文件,则只需要添加到配置文件中即可
- 将
nvm
的配置添加到~/.zshrc
里面保存起来,以安装时提示添加的配置为准,下面就拷贝一下当前安装所提示的。 - 下面配置二选一即可,但是有一点需要注意:在
$ sh xxx/instal.sh
进行安装之前如果本地存在当前解释器的配置文件,默认一般会自动将2
配置直接进行追加到配置文件中,也就是不需要手动进行添加。 - 在安装这之前没有配置文件的话,就需要先创建配置文件,在手动贴进去,也可以创建配置文件之后,在重新直接运行一遍
$ sh xxx/instal.sh
安装,反正也只是覆盖一遍,也会自动追加进去,可以打开配置自己看看。
# 1、这是本地不存在配置文件的时候提示需要添加的配置 export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm # 2、这是本地存在配置文件的时候提示需要添加的配置(推荐) 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
- 然后重新加载一遍配置文件,使其生效:
$ source ~/.zshrc
- 6、安装运行下面命令,可以测试是否安装成功
$ nvm -v 或 $ nvm use system
四、使用 nvm
- 安装最新稳定版
node
,当前是node v12.9.1 (npm v7.9.0)
$ nvm install stable
- 安装指定版本,可模糊安装,如:安装
v4.4.0
,既可$ nvm install v4.4.0
,又可$ nvm install 4.4
$ nvm install <version>
- 删除已安装的指定版本,语法与
install
用法一致
$ nvm uninstall <version>
- 切换使用指定的版本
node
// 临时版本 - 只在当前窗口生效指定版本 $ nvm use <version> // 永久版本 - 所有窗口生效指定版本 $ nvm alias default <version>
注意
:在任意一个命令行窗口进行切换之后,其他的窗口或其他命令行工具窗口需要关掉工具,重启才能生效
。(例如VSCode
内或外部命令切换之后,需要重启VSCode
,才能正常生效,否则或处于临时生效状态
,也就是在VSCode
中重新打开一个命令行查看版本还会是旧版本,所以必须要重启。)
这里的重启
不是简单的关掉窗口重启,没有退出后台进程,而是完全退出杀死工具进程,重新启动。- 列出所有安装的版本
$ nvm ls
- 列出所有远程服务器的版本(官方
node version list
)
$ nvm ls-remote
- 显示当前的版本
$ nvm current
- 给不同的版本号添加别名
$ nvm alias <name> <version>
- 删除已定义的别名
$ nvm unalias <name>
- 在当前版本
node
环境下,重新全局安装指定版本号的npm
包
$ nvm reinstall-packages <version>
- 查看更多命令可在终端输入
$ nvm