node.js - 如何解决 MacOS 上的 "sudo npm install"问题

标签 node.js macos npm installation sudo

不久前,我尝试在 Mac 上使用 sudo npm install 更新 npm, 所以更新不起作用,现在我无法运行任何 npm 项目。 在这个问题之后,我试图解决它,在 npm 论坛上搜索一些答案,并且我发现了一个讨论,其中开发人员说“永远不要使用 sudo npm install,特别是在 MacOS 上”。 所以我的问题是

  1. 如果可能的话,如何在不格式化电脑的情况下解决此问题
  2. 为什么将 sudo 与 npm 命令一起使用是一个坏主意?
<小时/>

我很抱歉我的英语不好,但我会努力做到最好。 感谢您的耐心等待。

最佳答案

我写了一篇关于这个问题的文章,其中还介绍了一些在不使用 sudo 的情况下管理 Node/npm 版本的解决方案:https://medium.com/@ExplosionPills/dont-use-sudo-with-npm-still-66e609f5f92

我会尝试在这里总结一下。

首先,如果您使用的是 MacOS,我强烈建议使用 homebrew如果您还没有安装系统 Node ,请执行此操作。假设您已经完成了自制程序,您应该能够运行 brew install node (它还将安装 npmyarn),而无需使用 sudo正确设置。

如果你想管理多个版本的 Node,我强烈推荐 https://github.com/tj/n作为一种工具。 nvm 也很流行,但我更喜欢 n。我在文章中介绍了如何安装和管理 n,但有人还创建了一个工具来帮助您完成此操作:https://github.com/mklement0/n-install .

您还可以查看this part of my 2015 article on the same topic可能会帮助您解决过去运行 sudo npm install 时可能遇到的问题。您可以在项目中尝试 sudo rm -rf node_modules,然后尝试 npm install(不使用 sudo)。

同样,您可能需要执行类似于 sudo rm -rf $(npm prefix -g)/{bin,lib/node_modules} 的操作,以防您全局安装带有错误前缀的 Node 模块。请注意,这删除您之前使用 sudo 安装的库,因此您必须再次安装它们。

除了您遇到的问题之外,您不应该使用 sudo npm 任何东西的一个关键原因是 npm 命令包括 install 能够运行任意脚本,包括从注册表下载的脚本。您不想向运行任意脚本的程序授予 root 权限!

关于node.js - 如何解决 MacOS 上的 "sudo npm install"问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55047241/

相关文章:

node.js - 在 Netbeans 8.1 上调试远程 Nodejs 项目

macos - NSCollectionView 似乎不需要注册其项目类

java - 从2.2.0版本开始,JMX控制台中不显示Spring执行器指标

html - html accept属性在不同的操作系统上以不同的方式工作

node.js - odas web 执行时出现错误 "sink pots: cannot connect to server"

node.js - 如何在 Express 中结合 app.get 和 app.post?

node.js - NodeJs (hmac) 的 Uber webhook 签名问题

javascript - 使用两步变量插入 MySQL (Node.js)

javascript - 在 Yarn 2 (berry) 中审计依赖项的最佳方法是什么?

node.js - AWS : Steps to pass a node. js 应用程序到 EC2