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

时间:2011-04-28 11:30:05

标签: 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.

7 个答案:

答案 0 :(得分:331)

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

npm install forever -g

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

  
      
  • 如果您正在安装要在程序中使用的内容,请使用   require('whatever'),然后安装它   本地,在你的根   项目
  •   
  • 如果您正在安装要在shell中使用的内容,请使用   命令行或其他东西,安装   它全局,以便它的二进制文件   最终进入你的PATH环境   变量
  •   

我最近刚刚使用了这些建议,但它的运行非常顺利。我全局安装(因为它是一个命令行工具)和本地所有的应用程序模块。

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

  

当然,有些情况下   你想两个都做。咖啡脚本和   Express都是应用程序的好例子   有一个命令行界面,如   以及图书馆。在那些情况下,你   可以做以下其中一项:

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

第一个选项是我的最佳选择   意见。简单,清晰,明确。该   如果你是第二个真的很方便   要重新使用同一个库   一堆不同的项目。 (更多关于   npm链接在以后的文章中。)

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

答案 1 :(得分: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

/usr/local/share/npm/bin添加到export PATH中的.bash_profile行,保存并source后,我就可以运行了

$> karma --help

正常。

答案 2 :(得分:4)

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

这是我使用的

nvm use v0.6.4

http://pastie.org/3232212

npm install

答案 3 :(得分:2)

我在Ubuntu上安装Express时出现问题:

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

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

sudo npm install -g express

这使得一切正常,因为我习惯使用Windows7和OSX。

希望这有帮助!

答案 4 :(得分:1)

您需要具有超级用户特权

 sudo npm install -g <package name>

答案 5 :(得分:-1)

在Ubuntu中,在 .bashrc 文件

中设置node_modules的路径
  

export PATH =“ / home / username / node_modules / .bin:$ PATH”

答案 6 :(得分:-5)

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