如何使用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. 

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

npm install forever -g

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

  • 如果您正在安装您要在程序中使用的东西,请使用require('whatever'),然后将其安装到您的项目的根目录。
  • 如果你正在安装你想在你的shell中使用的东西,在命令行或者其他地方安装 ,那么它的二进制文件就会在你的PATH环境variables中。

我刚刚使用这个build议,并顺利进行下去。 我永远安装在全球(因为它是一个命令行工具)和所有我的应用程序模块在本地。

但是,如果你想使用全局的某些模块(即express或mongodb),请采取这个build议(也取自blog.nodejs.org ):

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

  • 在两个地方安装它 。 真的,你是磁盘空间不足吗? 没关系,真的。 他们是很小的JavaScript程序。
  • 在全局安装它,然后npm链接coffee-script或npm链接expression式 (如果你在一个支持符号链接的平台上)。那么你只需要更新全局副本来更新所有的符号链接。

在我看来,第一个select是最好的。 简单,清晰,明确。 如果你打算在一堆不同的项目中重复使用同一个库,那么第二个方法真的很方便。 (更多关于npm链接的未来版本)

我没有testing这些变化之一,但他们似乎很简单。

在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 

/usr/local/share/npm/bin到我的.bash_profileexport PATH行后,保存并source ,我就能够运行

 $> karma --help 

一般。

我喜欢在app文件夹的根目录下使用package.json文件。

这是我使用的一个

 nvm use v0.6.4 

http://pastie.org/3232212

 npm install 

我在Ubuntu上安装Express时遇到问题:

如果由于某种原因,NPM命令丢失,请使用npm helptestingnpm命令。 如果没有,请按照以下步骤操作 – http://arnolog.net/post/8424207595/installing-node-js-npm-express-mongoose-on-ubuntu

如果只是Express命令不起作用,请尝试:

 sudo npm install -g express 

这使得一切工作,因为我习惯与Windows7和OSX。

希望这可以帮助!

您可能没有写入权限来在全局位置(例如/usr/local/lib/node_modules )中安装节点模块,在这种情况下,以root身份运行npm install -g软件包。