2015-06-22 53 views
0

模塊我在OS X安裝模塊通過節點JS不能要求在OS安裝全局X

sudo npm install -g xxx 

,和命令相呼應的模塊被安裝在 /usr/local/lib/node_modules/xxx

但是require('xxx')仍然沒有聲明'Can not find module'xxx'。只能在本地再次安裝模塊

sudo npm install xxx 

可以修復該錯誤。

什麼都需要在我的OSX中配置?

+0

我不知道你是如何安裝節點,但我安裝它[像這樣](http://stackoverflow.com/questions/17474687/npm-install-giving-error-installing-express/17475923 #17475923)在OSX上,我沒有任何問題。另外,我不必使用'sudo'來安裝東西,這很好。 – naomik

+0

我使用**自制軟件**來安裝**節點**和** npm **,並且我不知道爲什麼如果我沒有使用'sudo'安裝東西,將發生** EACCESS **錯誤。 –

回答

2

在你的啓動文件中(最有可能~/.bash_profile)將這個:

export NODE_PATH=/usr/local/lib/node_modules:$NODE_PATH 

啓動一個新的外殼,然後再試一次。

+0

謝謝,它的工作原理! –

0

我認爲,如果全球範圍內您所需要的絕對路徑:

var xxx = require("/usr/local/lib/node_modules/xxx");

如果你想一個地方,相對的Javascript模塊加載到的Node.js 應用程序,你可以簡單地使用要求()方法結合 相對(或絕對)文件路徑:

var moduleA = require("./module-a.js"); 
var moduleB = require("../../module-b.js"); 
var moduleC = require("/my-library/module-c.js"); 

from http://www.bennadel.com/blog/2169-where-does-node-js-and-require-look-for-modules.htm