gpt4 book ai didi

node.js - 为什么我有两个版本的 npm

转载 作者:搜寻专家 更新时间:2023-11-01 00:32:03 25 4
gpt4 key购买 nike

我正在尝试在 ubuntu 服务器上设置 npm 和 nodejs,但我注意到在运行后我以某种方式结束了两个版本sudo apt-get install nodejs npm我知道这一点是因为当我运行 npm -v 时,它返回 1.3.10,而当我运行 sudo npm -v 时,它返回 2.3.0。在我继续之前,我想正确设置它。有谁明白为什么我最终有两个版本?我的理解是安装 nodejs 也应该安装 npm,但这只允许我以提升的权限运行 npm,我知道我不应该这样做。谁能让我知道我做错了什么?谢谢。

最佳答案

npm 包似乎包含 nodejs 并且 nodejs 包含 npm。至少,它们包含不同版本的 npm(我没有检查 Node 版本),然后发生冲突。事实证明,nodejs 包含更新版本的 npm(并且我假设是更新版本的 node),所以这就是我选择继续使用的版本。这是对我有用的完整解决方案。

卸载所有版本的 node 和 npm。然后运行 ​​sudo apt-get install nodejs。最后,重启系统。

重启后,npm 可以在没有提升权限的情况下运行,但没有它们安装仍然有问题。要解决此问题,请引用 this 中的建议回答很有用。简而言之,创建以下配置文件以将包存储在不同的位置:

#~/.npmrc
prefix=~/.npm_modules

我不完全确定重新启动的作用是什么,但似乎 npm 包的一些内存在卸载后保留了下来。在重新启动之前,ubuntu 继续在/usr/bin/中寻找 npm,即使它驻留在/usr/local/bin/中。我想这与 PATH 环境变量中的目录顺序有关,但如果有人可以填写我在这里遗漏的内容,即使仅供引用,我也会很感激。

编辑

发表这篇文章后,我想到更改 npm 包的位置可能会对使用 npm install -g npm 更新 npm 造成问题,我认为这是进行更新的建议方法.我见过的另一种解决方案是让当前用户成为默认包位置的所有者,但这对我来说似乎有点愚蠢,并且不适用于多用户设置。有谁知道更好的解决方案?整个 npm 设置似乎有点像 catch-22...

关于node.js - 为什么我有两个版本的 npm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28225938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com