Как требовать Node Модуль в Node REPL без установки по всему миру?
В соответствии с руководством по эксплуатации node js настоятельно рекомендуется установить любой модуль node по всему миру.
Я пробовал разные вещи. Я выполнил следующие команды в своем домашнем каталоге, в моем 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
В домашнем каталоге я просто получаю ту же ошибку "не могу найти модуль".
Ответы
Ответ 1
Оператор require
работает нормально. Игнорируйте undefined
, что только node REPL. undefined
объясняется здесь и см. Комментарии ниже для ссылок на дополнительные материалы об этом.
Вы можете проверить:
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
Ответ 2
Печать undefined
- это обычное поведение как для консоли браузера, так и для node.
Попробуйте ввести: express. (клавиша табуляции) - вы должны получить что-то вроде этого:
> 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
Ответ 3
В зависимости от терминала/оболочки может потребоваться указать текущий каталог.
Я использую gitbash в данный момент.
_u = require('./node_modules/underscore/underscore');
Когда я делаю это, объект возвращается.
![node repl require example]()
Мне интересно, если это работает для других, это сработало для меня.