nodejs 版本管理
笔者是在 windows 上安装的,记录一下踩到的坑。
nvm for windows
主要参照这里的步骤 nvm.uihtm.com 。不过有几点需要注意:
安装 nvm for wondows 之前先卸载已经安装的 nodejs 。
安装过程中设置的 nvm 安装路径会在 settings.txt 中写入 root 配置,设置的 Node.js Symlink 会在 settings.txt 中写入 path 配置。
安装完后更换国内镜像源,不要使用命令行
nvm node_mirror [url]
和nvm npm_mirror [url]
, 这会导致 settings.txt 中已经写入的 path 丢失,然后 Node.js Symlink 就设置到 root 下了, 而你的环境变量还保持着安装时设置的 Node.js Symlink ,这会导致就算后续安装了 node , 运行node -v
时还是无法找到。应该直接在 nvm 的根目录下找到 settings.txt 文件,直接去里边添加
node_mirror: https://npmmirror.com/mirrors/node/ npm_mirror: https://npmmirror.com/mirrors/npm/
其他会修改到 settings.txt 文件的命令最好也不要用,就直接去 settings.txt 里面改 。
用
nvm use version
切换 node 版本时,要用管理员权限运行终端,不然会报exit status 1
错误。 切换成功后会生成一个上边设置过的 Node.js Symlink(具体设置的路径,即 settings.txt 中的 path)文件夹, 这个文件夹是带快捷方式图标的。
pnpm
如果已经安装了 nodejs ,也需要先卸载掉。然后独立安装 pnpm ,再用 pnpm 安装 nodejs 并管理 nodejs 的版本。 笔者也试过在有 nodejs 的情况下,用 npm 安装 pnpm ,再用 pnpm env use -g version
安装 nodejs , 不幸的是失败了,安装不上,会报如下的错误:
ERR_INVALID_ARG_TYPE The "path" argument must be of type string. Received undefined
windows 上使用 PowerShell 安装 pnpm(同样也是使用独立脚本安装时升级 pnpm 的命令)
shiwr https://get.pnpm.io/install.ps1 -useb | iex
安装并使用 nodejs(需要管理员权限运行终端)
安装并使用最新版本的 nodejs(--global, -g)
shpnpm env use -g latest
安装并使用 LTS 版本的 nodejs
shpnpm env use -g lts
安装并使用 v16 的 nodejs
shpnpm env use -g 16
安装完成后需要重启终端方可使用。重启终端后可使用
node -v
、npm -v
查看正在使用的 nodejs 与 npm 版本。列出已安装的 nodejs 版本(list, ls)
shpnpm env ls
前面标星号的是正在使用的
sh* 18.13.0 19.4.0
移除指定版本的 nodejs(remove, rm)
shpnpm env rm -g 19.4.0
pnpm
可能不太好输入,可以使用较短的别名来代替它,比如:pn
。用管理员权限打开 PowerShell 窗口,执行:
notepad $profile.AllUsersAllHosts
这会打开(若没有则新建)profile.ps1
文件,将下面的内容写入其中:
set-alias -name pn -value pnpm
保存文件并关闭窗口。为了使别名生效,可能需要关闭所有打开的 PowerShell 窗口。
这是 pnpm 官方网站中文版 pnpm.io/zh,更多的内容可以去官网查找。