213

我最近在 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.
4

8 回答 8

366

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

npm install forever -g

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

  • 如果您正在安装要在程序中使用的东西,请使用 require('whatever'),然后将其安装在本地,在项目的根目录下。
  • 如果您要在 shell、命令行或其他地方安装要在 shell 中使用的东西,请在 global 上安装它,以便它的二进制文件最终出现在您的 PATH 环境变量中。

我最近才使用了这个建议,而且效果非常好。我永远安装在全局(因为它是一个命令行工具)和我所有的本地应用程序模块。

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

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

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

第一个选项在我看来是最好的。简单、清晰、明确。如果您要在一堆不同的项目中重用同一个库,则第二个非常方便。(更多关于 npm 链接的内容将在以后的文章中介绍。)

我没有测试这些变体之一,但它们似乎非常简单。

于 2011-04-29T09:07:35.427 回答
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/binexport PATHmy 中的行.bash_profile,保存并sourceing 之后,我能够运行

$> karma --help

一般。

于 2013-05-19T14:36:43.820 回答
5

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

这是我使用的一个

nvm use v0.6.4
npm install
于 2012-01-22T18:35:34.367 回答
2

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

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

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

sudo npm install -g express

这使得一切都像我习惯使用 Windows7 和 OSX 一样工作。

希望这可以帮助!

于 2013-02-17T10:47:56.820 回答
1

您需要拥有超级用户权限,

 sudo npm install -g <package name>
于 2020-02-26T11:05:17.953 回答
0

根据官方文档推荐的步骤在我的 Macbook 上为我工作。

总结步骤:

  1. 使用以下命令实例化 nvm:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | 重击

您可以在此页面上查看最新版本: https ://github.com/nvm-sh/nvm

  1. 如果文件已经不存在,则在主目录中创建 .zshrc。

    触摸.zshrc

  2. 将以下内容放入 .zshrc 文件中

导出 NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && 。"$NVM_DIR/nvm.sh" # 这会加载 nvm

  1. 使用命令安装 nvm

nvm安装--lts

  1. 重启终端——你现在可以使用 npm 安装全局包了。
于 2021-09-18T18:15:12.433 回答
-1

在 Ubuntu 中,在.bashrc文件中设置 node_modules 的路径

导出 PATH="/home/username/node_modules/.bin:$PATH"

于 2018-08-14T09:40:36.327 回答
-5

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

于 2012-02-17T00:58:06.307 回答