2012-11-18 80 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安裝

*取與傳統捆綁的依賴將花費更多時間,因爲將安裝相同依賴關係的許多不同版本。