Рішення полягає у використанні:
delete require.cache[require.resolve(<path of your script>)]
Знайдіть тут декілька основних пояснень для тих, хто, як і я, трохи в цьому:
Припустимо, ви маєте фіктивний example.jsфайл у корені вашого каталогу:
exports.message = "hi";
exports.say = function () {
console.log(message);
}
Тоді вам require()це подобається:
$ node
> require('./example.js')
{ message: 'hi', say: [Function] }
Якщо ви додасте такий рядок до example.js:
exports.message = "hi";
exports.say = function () {
console.log(message);
}
exports.farewell = "bye!"; // this line is added later on
І продовжуйте в консолі, модуль не оновлюється:
> require('./example.js')
{ message: 'hi', say: [Function] }
Ось тоді ви можете використовувати delete require.cache[require.resolve()]вказане у відповіді luff :
> delete require.cache[require.resolve('./example.js')]
true
> require('./example.js')
{ message: 'hi', say: [Function], farewell: 'bye!' }
Таким чином кеш очищається і знову require()фіксує вміст файлу, завантажуючи всі поточні значення.