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。
任何想法如何我可以安装本地节点模块?
经过一些进一步的研究,我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安装
*使用传统捆绑获取依赖将花费更多的时间,因为许多相同依赖关系的不同版本将被安装。