10

我在 Ubuntu 12.10 上安装了 node.js 0.8.14。我在我的主目录中创建了一个带有子目录的目录node_modules。我想在那里安装一些本地节点模块,但
npm install myModule 在这个目录中运行会安装这个模块(与安装带有标志/usr/local/lib/node_modules/的模块相同的行为-g

中没有节点路径.bashrc

知道如何安装本地节点模块吗?

4

3 回答 3

20

经过一些进一步的研究,我找到了解决方案。

运行命令npm config ls显示默认配置global=false(您会看到默认配置npm config ls -l)被global=truein/home/vsdev/.npmrc和覆盖/usr/local/etc/npmrc

恢复它以global=false解决问题。

于 2012-11-19T07:31:52.100 回答
3

这很奇怪。

  • 仅供参考,您不需要创建 node_modules 目录,npm 会为您完成
  • npm 通常只安装到当前目录。即使您正在安装的软件包被配置为首选全局安装,npm 也会在本地安装它,除非您明确传递-g参数。
  • 你可以运行以下 shell 命令并确认 npm 真的是真正的 npm 吗?
    • which npm
    • alias | grep npm
于 2012-11-18T19:56:11.540 回答
1

npm install load all in node_modules 那么它可能是第 3 版的行为http://blog.npmjs.org/post/110924823920/npm-weekly-5或@vsdev 提到的,所以一旦你确定它是第3版的行为并且你想要和它一起去,然后它就很好,其他的就在下面

1-卸载所有模块..进入项目中的node_modules文件夹,然后执行:npm uninstall *

2- 告诉 npm 使用旧版捆绑安装此安装:

npm install --legacy-bundling 一个“永久”的替代方案:

将您的 npm 配置设置为始终使用旧版捆绑...

npm set legacy-bundling=true

..并照常运行:

npm 安装

*使用遗留捆绑获取依赖项将花费更多时间,因为将安装相同依赖项的许多不同版本。

于 2016-07-04T06:23:26.950 回答