npm install vs sudo npm install -g

Con*_*ech 6 javascript sudo node.js npm

对于一些我必须运行的包,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
Run Code Online (Sandbox Code Playgroud)

sudo必要只与-g标志?

Pau*_*gel 11

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

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

请注意,您不需要sudo安装全局包,请参阅此相关答案以获取更多信息.