npm将所有模块安装在/ usr / local / lib / node_modules /

我在Ubuntu 12.10上安装了node.js 0.8.14。 我在我的主目录中创build了一个子目录node_modules目录。 我想安装一些本地节点模块,但运行
npm install myModule在这个目录下npm install myModule将这个模块安装在/usr/local/lib/node_modules/ (和用-g标志安装模块的行为一样

.bashrc没有节点path。

任何想法如何我可以安装本地节点模块?

       

网上收集的解决方案 "npm将所有模块安装在/ usr / local / lib / node_modules /"

经过一些进一步的研究,我find了解决办法

运行命令npm config ls显示默认config global=false (你看npm config ls -l的默认configuration)被/home/vsdev/.npmrc/usr/local/etc/npmrc global=true覆盖。

恢复到global=false解决了这个问题。

这很奇怪。

  • 仅供参考,您不需要创buildnode_modules目录,npm将为您完成
  • npm通常只安装到当前目录。 即使您正在安装的软件包被configuration为偏好全局安装,npm也会将其安装在本地,除非您显式传递-g参数。
  • 你可以运行下面的shell命令并确认npm是否真的是真正的npm?
    • which npm
    • alias | grep npm

npm安装加载所有在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“永久”替代scheme:

设置您的NPMconfiguration始终使用传统捆绑…

npm set legacy-bundling = true

..和往常一样运行:

npm安装

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