Node的版本管理工具
- 工具介绍
- gnvm
- 官网指出特色的地方
- 安装
- 验证
- 配置与使用
- 配置文件内容
- 命令使用
- nvm
- 安装
- 脚本命令下载
- 请求文件下载
- 验证
- 配置文件
- 使用
- n
- 安装
- 使用
- Fast Node Manager (fnm)
- 安装
- 使用
工具介绍
本文介绍四款 Node 版本管理工具,用于下载和切换对应的
Node
与Npm
版本。
Windows
推荐使用gnvm
Centos
推荐使用nvm
- 在项目开发时,经常出现不同插件依赖的版本不同,导致项目需要更换环境版本。也避免在兼容新老项目切换时出现的问题。
gnvm
GNVM官方文档
GNVM
是一个简单的Node.js
多版本管理器,类似nvm nvmw nodist
。
官网指出特色的地方
- 单文件,不依赖于任何环境。
- 下载即用,无需配置。
- 彩色日志输出。
- 支持多线程下载。
- 内置 TAOBAO,方便切换,也支持自定义 。
- 支持 NPM 下载/安装/配置。
安装
git
用户,请使用
git clone git@github.com:Kenshin/gnvm-bin.git
curl
用户,请使用
curl -L https://github.com/Kenshin/gnvm-bin/blob/master/32-bit/gnvm.exe?raw=true -o gnvm.exe
curl -L https://github.com/Kenshin/gnvm-bin/blob/master/64-bit/gnvm.exe?raw=true -o gnvm.exe
验证
- 不存在
Node.js
环境
下载并解压缩
gnvm.exe
保存到任意文件夹,并将此文件夹加入到环境变量Path
。
- 存在
Node.js
环境
下载并解压缩
gnvm.exe
保存到Node.js
所在的文件夹。
通过where node
查看当前环境中是否安装有NodeJS
环境变量。
- 在
cmd
下,输入gnvm version
,如有 版本说明 则配置成功。
gnvm.exe
是一个单文件exe
,无需任何配置,直接使用。
配置与使用
global
当前使用的Node.js
latest
最新稳定版本的Node.js
session
当前cmd
所对应的环境(临时环境).gnvmrc
gnvm.exe
配置文件,无需手动建立,其中保存了本地 / 远程 Node.js 版本信息
等registry
node.exe
下载地址,默认为DEFAULT
,可更换为TAOBAO
,并且支持 自定义URL
noderoot
全局Node.js
所在的目录(也是gnvm.exe
所在的目录)
配置文件内容
globalversion: 5.0.1
latestversion: 5.10.1
noderoot: /Users/kenshin/Work/28-GO/01-work/src/gnvm
registry: http://npm.taobao.org/mirrors/node/
命令使用
这里搬运了一下官网的命令,大概使用这个顺序进行
# 更换更快的库 registry
# gnvm.exe 内建了 DEFAULT and TAOBAO 两个库。
gnvm config registry TAOBAO
# 列出本地已存在的全部 Node.js 版本
gnvm ls
# 查询 Node.js 版本
# 可以使用关键字 * 或者 正则表达式 /regxp/,例如: gnvm search 5.*.* 或者 gnvm search /.10./ 。
gnvm search 5.*.*
# 安装任意版本的 Node.js
gnvm install latest 1.0.0-x86 1.0.0-x64 5.0.0
# 切换本地存在的任意版本 Node.js
gnvm use 5.10.1
# 卸载本地任意 Node.js 版本
gnvm uninstall latest 1.0.0-x86 1.0.0-x64 5.0.0
# 更新本地的 Node.js latest 版本
gnvm update latest
# 本地不存在 NPM 时,安装当前 Node.js 版本对应的 NPM 版本。
gnvm npm global
# 查看本地 Node.js global and latest 版本。
gnvm node-version
# 验证 .gnvmrc registry 正确性。
gnvm config registry test
# 安装 NPM
gnvm npm latest
nvm
nvm
是一款NodeJS
版本管理工具,允许用户通过命令行快速安装、切换和管理不同的NodeJS
版本
nvm
只适用于macOS
和Linux
系统,Windows
系统,可以使用nvm-windows 、nodist
或nvs
替换。
安装
- 安装
nvm
- 脚本命令下载
脚本命令下载
浏览器打开链接,下载脚本
sh install.sh
cat>>settings.txt<<EOF
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
EOF
请求文件下载
# 方式2
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
# 方式3
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
- 安装
nvm-windows
nvm-noinstall.zip
:绿色免安装版,但使用时需进行配置。
nvm-setup.zip
:安装版,推荐使用
nvm-windows下载
- 访问页面,点击下载指定版本压缩包即可
验证
nvm ls // 看安装的所有node.js的版本
nvm list available // 查显示可以安装的所有node.js的版本
配置文件
- 安装后写入命令使用
使用
nvm ls # 查看版本安装所有版本
nvm ls-remote # 查看远程所有的 Node.js 版本
nvm install 17.0.0 # 安装指定的 Node.js 版本
nvm use 17.0.0 # 使用指定的 Node.js 版本
nvm alias default 17.0.0 # 设置默认 Node.js 版本
nvm alias dev 17.0.0 # 设置指定版本的别名,如将 17.0.0 版本别名设置为 dev
# nvm nvm list 是查找本电脑上所有的node版本
nvm list # 查看已经安装的版本
nvm list installed # 查看已经安装的版本
nvm list available # 查看网络可以安装的版本
# 安装最新版本nvm
nvm install
# 切换使用指定的版本node
nvm use <version>
# nvm ls 列出所有版本
nvm ls # 看安装的所有node.js的版本
nvm list available # 查显示可以安装的所有node.js的版本
# 显示当前版本
nvm current
## 给不同的版本号添加别名
nvm alias <name> <version>
## 删除已定义的别名
nvm unalias <name>
## 在当前版本node环境下,重新全局安装指定版本号的npm包
nvm reinstall-packages <version>
# 打开nodejs控制
nvm on
# 关闭nodejs控制
nvm off
# 查看设置与代理
nvm proxy
nvm node_mirror [url] # 设置或者查看setting.txt中的node_mirror,如果不设置的默认是 https://nodejs.org/dist/
nvm npm_mirror [url] # 设置或者查看setting.txt中的npm_mirror,如果不设置的话默认的是: https://github.com/npm/npm/archive/
# 卸载制定的版本
nvm uninstall <version>
# 切换制定的node版本和位数
nvm use [version] [arch]
# 设置和查看root路径
nvm root [path]
# 查看当前的版本
nvm version
n
n
是一款交互式的Node.js
版本管理工具,没有子脚本,没有配置文件,也没有复杂的 API,使用起来非常简单
n
只适用于macOS
和Linux
,不适用于Windows
安装
# npm 直接安装到全局:
npm install n -g
使用
n 显示下载的Node.js版本和安装选择
n latest 安装最新的Node.js版本(如有必要,请下载)
n lts 安装最新的LTS Node.js版本(如有必要,请下载)
n <version> 安装Node.js<版本>(如有必要,请下载)
n install <version> 安装Node.js<版本>(如有必要,请下载)
n run <version> [args ...] Execute downloaded Node.js <version> with [args ...]
n which <version> Output path for downloaded node <version>
n exec <vers> <cmd> [args...] Execute command with modified PATH, so downloaded node <version> and npm first
n rm <version ...> 删除给定的下载版本
n prune 删除除已安装版本外的所有下载版本
n --latest 输出可用的最新Node.js版本
n --lts 输出可用的最新LTS Node.js版本
n ls 输出下载的版本
n ls-remote [version] 可供下载的输出匹配版本
n uninstall 删除已安装的Node.js
Fast Node Manager (fnm)
安装
# 初始安装
curl -fsSL https://fnm.vercel.app/install | bash
# 后续升级
curl -fsSL https://fnm.vercel.app/install | bash -s -- --skip-shell
# ~/.zshrc 修改
# 支持自动根据项目 .nvmrc 文件自动切换版本,使用镜像避免可能存在的 fnm install 问题
- eval "$(fnm env)"
+ eval "$(fnm env --use-on-cd --node-dist-mirror=https://repo.huaweicloud.com/nodejs/)"
使用
# 命令帮助
fnm --help
# node 已安装列表
fnm list
# node 安装
fnm install 版本号(支持模糊/lts)
# node 卸载
fnm uninstall 版本号
# node 切换
fnm use 版本号
# node 设置默认
fnm default 版本号