对于某些包,我必须运行 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-cli
、mocha
或 json
.为了在任何地方使用它们,您需要全局安装它们,因此需要 -g
参数。
请注意,您不需要 sudo
来安装全局包,请参阅 this relevant answer获取更多信息。
关于javascript - npm install 与 sudo npm install -g,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20264157/