如何让nvm识别安装nvm之前已存在的Node.js版本
让nvm识别提前安装的Node.js版本(无需卸载)
可以通过创建软链接的方式让nvm识别已安装的Node.js版本,无需卸载重装,步骤如下:
获取现有Node.js的关键信息
- 查看Node版本号:
node -v(示例输出:v16.18.0) - 查看Node二进制文件路径:
which node(示例输出:/usr/local/bin/node) - 查看npm二进制文件路径:
which npm(示例输出:/usr/local/bin/npm) - 查看全局npm包目录(可选):
npm root -g(示例输出:/usr/local/lib/node_modules)
- 查看Node版本号:
在nvm的版本目录中创建对应版本的结构
nvm默认将管理的Node版本存放在~/.nvm/versions/node/下,先创建对应版本的bin目录:mkdir -p ~/.nvm/versions/node/[你的Node版本号]/bin # 比如版本是v16.18.0,命令为: # mkdir -p ~/.nvm/versions/node/v16.18.0/bin创建软链接关联现有文件
- 链接Node二进制文件:
ln -s [你的Node路径] ~/.nvm/versions/node/[你的Node版本号]/bin/node # 示例:ln -s /usr/local/bin/node ~/.nvm/versions/node/v16.18.0/bin/node - 链接npm二进制文件:
ln -s [你的npm路径] ~/.nvm/versions/node/[你的Node版本号]/bin/npm # 示例:ln -s /usr/local/bin/npm ~/.nvm/versions/node/v16.18.0/bin/npm - (可选)链接全局npm包目录,让nvm能识别已安装的全局包:
ln -s [你的全局包路径] ~/.nvm/versions/node/[你的Node版本号]/lib/node_modules # 示例:ln -s /usr/local/lib/node_modules ~/.nvm/versions/node/v16.18.0/lib/node_modules
- 链接Node二进制文件:
验证效果
执行nvm list,你会看到提前安装的Node版本出现在列表中,之后可以用nvm use [你的Node版本号]切换到该版本。
注意:这种方式是通过软链接让nvm“接管”现有版本,后续使用nvm安装/切换其他版本不会影响这个现有版本,除非手动删除对应的软链接。
内容的提问来源于stack exchange,提问作者JF0001
相关产品推荐
相关产品推荐

