我在Ubuntu 12.10上安装了node.js 0.8.14。我在我的主目录下创建了一个子目录node_modules
,我想要在那里安装一些本地的node模块,但是在该目录中运行
npm install myModule
会将这个模块安装在/usr/local/lib/node_modules/
(与使用-g
标志安装模块的行为相同)。
.bashrc
中没有node路径。
你有任何想法如何安装本地的node模块吗?
经过进一步的研究,我找到了解决方案。
运行命令 npm config ls
发现默认配置项 global=false
(可以用 npm config ls -l
查看默认配置项) 被 /home/vsdev/.npmrc
和 /usr/local/etc/npmrc
中的 global=true
覆盖了。
将其恢复为 global=false
就解决了该问题。
这很奇怪。
-g
参数,否则npm将在本地安装它。which npm
alias | grep npm
npm install会加载所有的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 install
*使用旧版捆绑方式获取依赖项将需要更长时间,因为将安装许多不同版本的相同依赖项。