npm安装/ usr / local / lib / node_modules /中的所有模块

时间:2012-11-18 19:07:56

标签: node.js npm

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

.bashrc中没有节点路径。

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

3 个答案:

答案 0 :(得分:20)

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

运行命令npm config ls显示默认配置global=false(您看到npm config ls -l的默认配置)已被global=true /home/vsdev/.npmrc中的/usr/local/etc/npmrc覆盖{1}}。

将其还原为global=false解决了问题。

答案 1 :(得分:3)

这很奇怪。

  • 仅供参考,您不需要创建node_modules目录,npm会为您执行此操作
  • npm通常只安装到当前目录。即使您正在安装的软件包配置为更喜欢全局安装,npm也会在本地安装它,除非您明确传递-g参数。
  • 你可以运行以下shell命令并确认npm真的是真正的npm吗?
    • which npm
    • alias | grep npm

答案 2 :(得分:1)

npm install在node_modules中加载所有内容然后它可能是版本3行为http://blog.npmjs.org/post/110924823920/npm-weekly-5或者@vsdev所提到的,所以一旦你确定它的版本3行为并且你想要使用它,那么它的其他内容如下< / p>

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

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

npm install --legacy-bundling A&#34;永久&#34;替代方法:

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

npm set legacy-bundling = true

..并像往常一样运行:

npm install

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