爲什麼在REPL中要求不使用主要上下文中的緩存並再次需要文件?Node.js:需要在REPL中?
舉例: 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:
node via stdin> var aInREPL = require('./a')
,並打印 「1」 再等等,global.a == aInREPL
但有時我需要在同一REPL得到!如主程序中的對象(例如Singletone)。我怎樣才能做到這一點?
這很不方便。我可以在REPL中使用require.main以獲得相同的上下文 – Sirian
此方法可以並且將比require.main更加簡潔。以上只是一個簡單的例子(不是最漂亮的)。 1)更清晰2)更清晰,設置整個上下文對象一次,而且你不需要去挖掘需求3)更靈活,你可以添加外部需要的東西(構造器參數等) – Scott