如何在设置自定义全局目录时更新npm到最新版本

3

通过以下方式以普通方式更新npm:

npm i npm@latest -g

会导致最新版本的npm安装在我自定义的目录.npm-global/中,该目录已通过以下方式设置:

prefix=${HOME}/.npm-global

在我的.npmrc文件中,旧版本的/usr/local/bin/npm会优先使用。尝试进行链接会导致错误:
○ → 链接 ~/.npm-global/bin/npm npm
dhcp-160 in /usr/local/bin ○ → npm module.js:471 throw err; ^
Error: Cannot find module '../lib/utils/unsupported.js'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at /usr/local/bin/npm:19:21
at Object.<anonymous> (/usr/local/bin/npm:79:3)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)

那么我该如何切换到新的 npm 版本呢?


通过这个答案解决了:http://apple.stackexchange.com/a/265536/56300 - Dmitri Zaitsev
1个回答

2

请按照以下顺序执行以下命令:

sudo brew uninstall node
brew update
brew upgrade
brew cleanup
brew install node
sudo chown -R $(whoami) /usr/local
brew link --overwrite node
brew post install node

参考页面:Node.js未链接错误


我没有使用brew安装node,而且我宁愿不卸载它。 - Dmitri Zaitsev
你在命令 brew post install node 中犯了一个错误。 这是正确的命令:brew postinstall node - tuandapen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接