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

Cri*_*ian 190 node.js 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.
Run Code Online (Sandbox Code Playgroud)

sch*_*rmu 336

如果要全局安装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链接的更多信息.)

我没有测试其中一个变体,但它们看起来非常简单.

  • 谢谢你的澄清.Isaacs应该用上面的文本替换整个npm manfile和git wiki.可以清除群众的困惑. (6认同)

Dro*_*ans 8

在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
Run Code Online (Sandbox Code Playgroud)

添加/usr/local/share/npm/binexport PATH我的行.bash_profile,保存它,然后source它,我能够运行

$> karma --help
Run Code Online (Sandbox Code Playgroud)

一般.


ful*_*ife 5

我喜欢在应用程序文件夹的根目录中使用 package.json 文件。

这是我使用的一个

nvm use v0.6.4
npm install
Run Code Online (Sandbox Code Playgroud)