2015-06-22 48 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