2011-04-28 69 views
176

我最近安裝的Node.js和OSX NPM模塊,並與設置的問題,我認爲:如何使用npm全局安裝模塊?

npm install [MODULE] is not installing the node.js module to the default path 
which is /usr/local/lib/node_modules. 

回答

316

如果你想在全球範圍內安裝NPM模塊,請務必使用新-g標誌,用於例如:

npm install forever -g

關於自1.0RC NPM模塊安裝的一般建議(從blog.nodejs.org截取):

  • 如果你安裝你想要在你的程序中使用,使用 需要的東西(「不管」),然後安裝 本地,你 項目的根目錄。
  • 如果你安裝你想要在你的shell使用的東西,在 命令行或某事上,安裝 它在全球,使得它的二進制文件 結束了在PATH環境變量 。

我剛剛使用了這個建議,並且順利進行。我在全球範圍內永遠安裝(因爲它是一個命令行工具),並在本地安裝所有應用程序模塊。

但是,如果你想在全球範圍內使用的一些模塊(即明示或mongodb的),藉此忠告(也blog.nodejs.org拍攝):

當然,也有一些情況下, 你想做的事都。 Coffee-script和 這兩個都是應用程序 的好例子,它們有一個命令行界面,如 以及一個庫。在這種情況下,你 可以做下列之一:

  • 在這兩個地方安裝它。嚴重的是,你是否在磁盤空間 ?這很好,真的。它們很小巧,編程爲 。
  • 全球安裝它,然後NPM鏈接咖啡腳本或NPM鏈接表達 (如果你支持 符號鏈接。在一個平臺上),那麼你只需要 更新全球副本更新所有 符號鏈接也是如此。

第一個選項是最好的在我的 的意見。簡單,清晰,明確。 秒是非常方便的,如果你是 去重新使用一堆 不同的項目中的相同的庫。 (更多關於 NPM鏈接在以後的文章。)

我沒有測試這些變化之一,但他們似乎是非常簡單的。

+6

感謝您的澄清。 Isaacs應該用上面的文本替換整個npm manfile和git wiki。可以消除質量混亂。 – 2011-05-01 08:12:53

+0

shweeet。這很方便,我被這個變化所困住了。在某些時候,npm install給了命令行訪問權限,然後它就消失了,我沒有緊緊跟蹤這個項目,以便抓住轉換。 – 2011-05-27 19:12:58

+0

這解釋了爲什麼我有一個節點模塊在我的Apache配置目錄中。 。 。 – 2012-04-25 05:18:32

-5

您可能沒有寫權限在全球的位置,如/usr/local/lib/node_modules安裝節點模塊中,在這種情況下運行NPM安裝 - g軟件包作爲根。

8

在Mac上,我發現輸出包含我正在尋找的信息:

$> npm install -g karma 
... 
... 
> [email protected] install /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws 
> (node-gyp rebuild 2> builderror.log) || (exit 0) 
... 
$> ls /usr/local/share/npm/bin 
karma nf 

在我.bash_profile添加/usr/local/share/npm/binexport PATH線,將其保存,並source荷蘭國際集團之後,我能運行

$> karma --help 

正常。