如何使用 npm 全局安装模块?

新手上路,请多包涵

我最近在 OSX 上安装了 Node.js 和 npm 模块,但我认为设置有问题:

 npm install [MODULE] is not installing the node.js module to the default path
which is /usr/local/lib/node_modules.

原文由 Cristian 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 533
2 个回答

如果要全局安装 npm 模块,请确保使用新的 -g 标志,例如:

npm install forever -g

自 1.0rc 以来关于 npm 模块安装的一般建议(取自 blog.nodejs.org ):

  • 如果您正在安装要在程序中使用的东西,请使用 require(‘whatever’),然后 在本地安装它,在项目的根目录下。
  • 如果您要在 shell、命令行或其他地方安装要在 shell 中使用的东西, 请全局安装它,以便它的二进制文件最终出现在您的 PATH 环境变量中。

我最近才使用了这个建议,而且效果非常好。我永远安装在全局(因为它是一个命令行工具)和我所有的本地应用程序模块。

但是,如果您想全局使用某些模块(即 express 或 mongodb),请采纳以下建议(也取自 blog.nodejs.org ):

当然,在某些情况下您希望两者都做。 Coffee-script 和 Express 都是具有命令行界面和库的应用程序的好例子。在这些情况下,您可以执行以下操作之一:

  • 在这两个地方安装它。说真的,你的磁盘空间那么短吗?没关系,真的。它们是小型 JavaScript 程序。
  • 全局安装它,然后 npm link coffee-script 或 npm link express (如果您在支持符号链接的平台上)。然后您只需要更新全局副本即可更新所有符号链接。

第一个选项在我看来是最好的。简单、清晰、明确。如果您要在一堆不同的项目中重用同一个库,则第二个非常方便。 (更多关于 npm 链接的内容将在以后的文章中介绍。)

我没有测试这些变体之一,但它们似乎非常简单。

原文由 schaermu 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 Mac 上,我发现输出包含我要查找的信息:

 $> npm install -g karma
...
...
> ws@0.4.25 install /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)
...
$> ls /usr/local/share/npm/bin
karma nf

After adding /usr/local/share/npm/bin to the export PATH line in my .bash_profile , saving it, and source ing it, I was able to run

 $> karma --help

通常情况下。

原文由 yurisich 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题