javascript - npm install 与 sudo npm install -g

标签 javascript node.js npm sudo

对于某些包,我必须运行 sudo npm install -g,而对于其他包,npm install 就足够了。

为什么以及有什么区别?

例如:

npm install -g grunt-cli  # doesn't work
sudo npm install -g grunt-cli  # works
npm install websocket-stream # works

是否只有 -g 标志才需要 sudo

最佳答案

npm 在本地安装包,即。在当前文件夹内的 node_modules 文件夹中。这允许您的应用程序依赖于特定的包版本,而不必弄乱系统上已安装包的全局列表。见Isaac's blog post第一段(同时处理同一事物的多个版本),这很好地解释了 npm 如何避免在其他编程生态系统中经常遇到的依赖 hell 。

另一方面,一些包旨在用作命令行实用程序,例如 grunt-climochajson .为了在任何地方使用它们,您需要全局安装它们,因此需要 -g 参数。

请注意,您不需要 sudo 来安装全局包,请参阅 this relevant answer获取更多信息。

关于javascript - npm install 与 sudo npm install -g,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20264157/

相关文章:

node.js - RollupJS `resolve failed: Error: Cannot find module ' babel-runtime'`

docker - Jenkins 管道中的 npm 安装失败

npm - 如何修复 Npm 缺少对等依赖项

javascript - 使用jquery在 anchor 标记的文本之间添加span标记

javascript - 传递 prop 服务器端不会在客户端呈现

javascript - 我的代码只在 C++ 中运行,但相同的代码在 Node.js 中不起作用

node.js - NodeJS + Express + Socket.IO + SSL

node.js - 如何使用绑定(bind)更新 Azure 函数中的 Azure 表行?

javascript - 替换为等效 unicode 时的额外空格

javascript - 构建一个所见即所得的编辑器