为什么 REPL 中的 require 不使用主上下文中的缓存并再次需要文件?
示例:test.js:
var repl = require('repl');
global.a = require('./a');
repl.start({
prompt: "node via stdin> ",
input: process.stdin,
output: process.stdout
});
一个.js
console.log(1)
我开始 test.js:
node test.js
它打印“1”
当我在 REPL 中打印“require('./a')”时:
node via stdin> var aInREPL = require('./a')
它再次打印“1”,因此 global.a !== aInREPL
但有时我需要在 REPL 中获取与主程序中相同的对象(例如 Singletone)。我怎样才能做到这一点?