第二章 Node.js
、NPM
、Nvm
、Nrm
、Npx
2.1 概述
- Node.js:
Node.js
是一个免费的、开源的、跨平台的JavaScript
运行时环境,允许开发人员在浏览器之外编写命令行工具和服务器端脚本。 - nvm:
nvm(Node Version Manager)
是一个Node.js
版本管理工具,可以方便地在同一台机器上安装、管理多个Node.js
版本。由于不同的项目可能需要使用不同的Node.js
版本,nvm
可以帮助开发人员快速地在不同的Node.js
版本之间切换,避免版本冲突的问题。 - npm:
npm(Node Package Manager)
是一个Node.js
的包管理器,用于安装、管理、卸载JavaScript
模块。npm
提供了一个包管理器,使得开发人员可以方便地使用第三方模块,同时也可以将自己编写的模块发布到npm
上供其他人使用。 - nrm:
nrm(npm registry manager)
是npm
镜像源管理工具,用于快速地在不同的npm
源之间切换。在中国大陆,由于网络的原因,npm
的默认源可能会出现下载速度较慢或者无法访问的情况,nrm
可以帮助开发人员快速地切换到可用的源,提高包的下载速度。 - npx:
npx(npm package executor)
是一个npm
包执行器。我们可以使用npx
来执行各种命令。
2.2 nvm
之所以选择
nvm
而不选择nvm-windows
,是因为nvm
支持通过nvm use
命令,读取.nvmrc
文件指定的node
版本号,自动切换node
版本,从而使团队成员统一node
版本(4.1节具体介绍),而nvm-windows
不支持。
2.2.1 下载 wget
-
下载
wget
二进制安装包,地址:https://eternallybored.org/misc/wget/ -
解压安装包,将
wget.exe
拷贝到Git Bash
命令行工具所在目录下,如C:\Program Files\Git\mingw64\bin\
gitbash
测试
2.2.2 安装 nvm
国内链接
Github
不稳定,建议使用Github
加速器。
-
运行安装脚本。
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
安装完成后,如果提示没有找到配置文件,则需要手动创建一个配置文件。
=> Profile not found. Tried ~/.bashrc, ~/.bash_profile, ~/.zprofile, ~/.zshrc, and ~/.profile. => Create one of them and run this script again OR => Append the following lines to the correct file yourself:
-
创建配置文件。
touch ~/.profile
参考官网创建相应解释器的配置文件,否则重启命令行会报警告。如:
Git Bash
,若创建~/.bashrc
,会警告“发现~/.bashrc
但无~/.bash_profile
、~/.bash_login
或~/.profile
,这看起来像一个错误安装,将通过加载~/.bashrc
为你创建~/.bash_profile
”。WARNING: Found ~/.bashrc but no ~/.bash_profile, ~/.bash_login or ~/.profile. This looks like an incorrect setup. A ~/.bash_profile that loads ~/.bashrc will be created for you.
-
再次运行安装脚本。
-
重新启动
Git Bash
,检查nvm
版本,测试是否安装成功。nvm -v
2.2.3 使用 nvm
默认国外安装源速度太慢,需切换到国内镜像(镜像地址参考https://github.com/coreybutler/nvm-windows)。
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/
-
安装最新稳定版
node
,当前是node v21.5.0 (npm v10.2.4)
nvm install stable
-
安装指定版本,可模糊安装,如:安装
v18.18.0
,既可$ nvm install v18.18.0
,又可$ nvm install 18.18.0
,还可$ nvm install 18.18
(nvm
会安装最后一个版本v18.18.2
)。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
2.3 nrm
2.3.1 安装 nrm
npm install -g nrm
2.3.2 查看可选源
$ nrm ls
npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
* taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/
在
v21.0.0
以上会报废弃警告。
2.3.3 切换源
$ nrm use taobao
SUCCESS The registry has been changed to 'taobao'.