Решением является использование:
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()]указанное в ответе Луффа :
> delete require.cache[require.resolve('./example.js')]
true
> require('./example.js')
{ message: 'hi', say: [Function], farewell: 'bye!' }
Таким образом, кэш очищается и require()снова захватывает содержимое файла, загружая все текущие значения.