任何引用任何全局模块的require语句都失败。 该模块全局安装(-g),命令行中的常规节点运行正常。 redis失败了,mongodb失败了等等。 我没有找到任何配置选项。 表达工作得很好,但不是其他模块。
在sudo npm install -g redis之后,例如,nodeclipse找不到它。 节点命令行,工作正常。
与普通用户一起运行。
答案 0 :(得分:2)
节点包含不同的模块,然后可能会有人期望。 From the node docs:
如果传递给require()的模块标识符不是本机模块,并且不以'/','../'或'./'开头,则节点从当前模块的父目录开始,并添加/ node_modules,并尝试从该位置加载模块。
如果在那里找不到它,那么它会移动到父目录,依此类推,直到到达树的根目录。
所以是的,当使用-g选项调用时,npm会安装到全局目录,但是该节目不是从节点读取的,除非当前模块也位于同一目录或子目录中,只要它可以工作其他模块也由npm -g。
安装但是,如果启动.js位于某个不同的目录中,则此方案不起作用。
所以,我想你可以让它工作,添加到NODE_PATH环境变量,其中npm安装了模块(例如NODE_PATH = / usr / local / lib / node_modules)。这可以从Run As ...导航完成 - >运行配置 - >环境标签
答案 1 :(得分:0)
您是否只是'npm install'那些模块?
在您的问题中提供更多信息,因为无法分辨您环境中的不同之处。