我最近在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.
答案 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)
答案 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。