为什么Node.js控制台中没有下划线模块?

时间:2013-04-02 16:38:11

标签: node.js underscore.js

我运行以下代码来安装下划线js模块:

npm install -g underscore

然后我尝试通过节点控制台访问它,但是我收到以下错误:

node
> __ = require('underscore');
Error: Cannot find module 'underscore'
  at Function.Module._resolveFilename (module.js:338:15)
  at Function.Module._load (module.js:280:25)
  at Module.require (module.js:362:17)
  at require (module.js:378:17)
  at repl:1:6
  at REPLServer.self.eval (repl.js:109:21)
  at rli.on.self.bufferedCmd (repl.js:258:20)
  at REPLServer.self.eval (repl.js:116:5)
  at Interface.<anonymous> (repl.js:248:12)
  at Interface.EventEmitter.emit (events.js:96:17)

为什么这个例子不起作用?

2 个答案:

答案 0 :(得分:6)

我真的不知道为什么,但它确实失败了(当你在全球范围内安装下划线时)。

如果你在没有-g的情况下安装它,它应该工作(但要注意,因为'_'已被Node REPL用来保存最后一次操作的结果,如下所述: Using the Underscore module with Node.js

您真的需要在全球范围内安装吗?

答案 1 :(得分:4)

我遇到了同样的问题

$ export NODE_PATH=/usr/local/share/npm/lib/node_modules

为我整理出来;这显然取决于您的平台以及npm安装它的位置。另外,正如Javo的回答中所提到的,不要在REPL中将其命名为_。