REPL の require がメインコンテキストのキャッシュを使用せず、ファイルを再度必要とするのはなぜですか?
例: test.js:
var repl = require('repl');
global.a = require('./a');
repl.start({
prompt: "node via stdin> ",
input: process.stdin,
output: process.stdout
});
a.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)。これどうやってするの?