Pourquoi exiger dans REPL n'utilise pas le cache du contexte principal et nécessite un nouveau fichier?Node.js: require dans REPL?
Exemple: 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)
Je commence test.js:
node test.js
Il "1" Imprimons
lorsque j'imprime " require ('./ a') » dans REPL:
node via stdin> var aInREPL = require('./a')
et imprime "1", et ainsi, global.a == aInREPL
Mais parfois, je dois entrer en REPL même! objet comme dans le programme principal (par exemple Singletone). Comment puis-je faire ceci?
ce n'est pas pratique. Je peux utiliser require.main dans REPL pour obtenir le même contexte – Sirian
Cette approche peut et sera beaucoup plus propre que require.main. Ci-dessus est juste un exemple laconique (pas le plus joli). 1) Il est beaucoup plus explicite 2) Cleaner, définissez l'objet contexte entier une fois et vous n'avez pas besoin d'aller creuser nécessite 3) Plus flexible, vous pouvez ajouter des choses à l'extérieur nécessite (arguments constructeur – Scott