如何在节点REPL中需要节点模块而无需全局安装?

按照js指令手册,非常不鼓励在全局安装任何节点模块。

我尝试了各种各样的东西。 我在我的主目录,我的git文件(与node_modules)文件夹和实际的node_modules文件夹执行以下命令。

> var express=require('express'); undefined > var express=require('node_modules/express'); Error: Cannot find module 'node_modules/express' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at repl:1:13 at REPLServer.self.eval (repl.js:110:21) at repl.js:249:20 at REPLServer.self.eval (repl.js:122:7) at Interface.<anonymous> (repl.js:239:12) at Interface.EventEmitter.emit (events.js:95:17) 

请注意,在上面,我希望他们在我的git文件夹(与node_modules)。 我发现它好奇,线

 > var express=require('express'); 

产生

 undefined 

在主目录中,我只是得到相同的“无法find模块”的错误。

您的require声明工作正常。 忽略undefined ,这只是节点REPL。 在这里解释undefined ,并参见下面的注释以获取关于这些附加材料的链接。

您可以validation:

 mkdir /tmp/test-repl cd /tmp/test-repl npm install express node > var express = require('express'); undefined > express //long object which is the express module gets printed 

undefined打印对于浏览器控制台和节点repl都是正常行为。

尝试打字:快递。 (tab键) – 你应该得到这样的东西:

 > var express = require('express'); undefined > express. express.__defineGetter__ express.__defineSetter__ express.__lookupGetter__ express.__lookupSetter__ express.constructor express.hasOwnProperty express.isPrototypeOf express.propertyIsEnumerable express.toLocaleString express.toString express.valueOf express.apply express.arguments express.bind express.call express.caller express.constructor express.length express.name express.toString express.Route express.Router express.application express.arguments express.basicAuth express.bodyParser express.caller express.compress express.cookieParser express.cookieSession express.createServer express.csrf express.directory express.errorHandler express.favicon express.json express.length express.limit express.logger express.methodOverride express.mime express.multipart express.name express.prototype express.query express.request express.response express.responseTime express.session express.static express.staticCache express.timeout express.urlencoded express.version express.vhost 

根据terminal/shell,它可能希望你指定当前目录。 目前我正在使用gitbash。

  _u = require('./node_modules/underscore/underscore'); 

当我这样做时,对象返回。

节点repl需要示例

我很好奇,如果这为别人工作,它为我工作。