如何使用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_profile
的export PATH
行后,保存并source
,我就能够运行
$> karma --help
一般。
我在Ubuntu上安装Express时遇到问题:
如果由于某种原因,NPM命令丢失,请使用npm help
testingnpm命令。 如果没有,请按照以下步骤操作 – 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软件包。