2012-11-18 42 views
10

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

有一个在.bashrc没有节点路径安装模块。

任何想法我怎么能安装本地节点模块?

回答

20

经过进一步研究,我找到了解决办法。

运行命令npm config ls透露,默认配置global=false(你看到npm config ls -l默认配置)是由global=true/home/vsdev/.npmrc/usr/local/etc/npmrc覆盖。

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

+0

太棒了!我只是新来的节点,并且因为没有找到当地的咕噜声而挣扎。我花了很长时间才发现问题出在这个配置上。谢谢! –

3

这是奇数。

  • ˚F你不需要创建node_modules目录,npm会为你做这个
  • npm通常只安装到当前目录。即使您正在安装的软件包被配置为偏好全局安装,npm也会将其安装在本地,除非您明确通过-g参数。
  • 你能运行下面的shell命令并确认npm真的是真正的npm吗?
    • which npm
    • alias | grep npm
1

NPM安装负荷都在node_modules那么它可能是版本3的行为http://blog.npmjs.org/post/110924823920/npm-weekly-5或由@vsdev提到所以一旦你确定它的版本3的行为和u想要去用它,然后它的罚款否则按照以下

1 - 卸载所有模块..到项目的node_modules文件夹,然后执行:NPM卸载*

2 - 泰尔NPM与传统的捆绑为这一个安装安装:

NPM安装--legacy捆绑 一个“永久”替代:

设置你的NPM配置为一直使用传统的捆绑...

NPM设置传统的捆绑=真

..和照常运行:

NPM安装

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