如何在节点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
在主目录中,我只是得到相同的“找不到模块”错误。
回答如下:你的require
声明工作正常。忽略undefined
,这只是节点REPL。 undefined
被解释为here,请参阅下面的评论,以获取有关此内容的其他材料的链接。
您可以验证:
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