La soluzione è usare:
delete require.cache[require.resolve(<path of your script>)]
Trova qui alcune spiegazioni di base per coloro che, come me, sono un po 'nuovi in questo:
Supponiamo di avere un example.jsfile fittizio nella directory principale della directory:
exports.message = "hi";
exports.say = function () {
console.log(message);
}
Allora ti require()piace questo:
$ node
> require('./example.js')
{ message: 'hi', say: [Function] }
Se poi aggiungi una linea come questa a example.js:
exports.message = "hi";
exports.say = function () {
console.log(message);
}
exports.farewell = "bye!"; // this line is added later on
E continua nella console, il modulo non viene aggiornato:
> require('./example.js')
{ message: 'hi', say: [Function] }
Ecco quando puoi usare delete require.cache[require.resolve()]indicato nella risposta di Luff :
> delete require.cache[require.resolve('./example.js')]
true
> require('./example.js')
{ message: 'hi', say: [Function], farewell: 'bye!' }
Quindi la cache viene pulita e require()cattura nuovamente il contenuto del file, caricando tutti i valori correnti.