Rozwiązaniem jest użycie:
delete require.cache[require.resolve(<path of your script>)]
Znajdź tutaj kilka podstawowych wyjaśnień dla tych, którzy, podobnie jak ja, są nieco nowi:
Załóżmy, że masz example.jskatalog zastępczy w katalogu głównym:
exports.message = "hi";
exports.say = function () {
console.log(message);
}
To ci się require()podoba:
$ node
> require('./example.js')
{ message: 'hi', say: [Function] }
Jeśli następnie dodasz taką linię do example.js:
exports.message = "hi";
exports.say = function () {
console.log(message);
}
exports.farewell = "bye!"; // this line is added later on
I kontynuuj w konsoli, moduł nie jest aktualizowany:
> require('./example.js')
{ message: 'hi', say: [Function] }
Wtedy możesz użyć delete require.cache[require.resolve()]wskazanego w odpowiedzi Luffa :
> delete require.cache[require.resolve('./example.js')]
true
> require('./example.js')
{ message: 'hi', say: [Function], farewell: 'bye!' }
Pamięć podręczna jest czyszczona i ponownie require()przechwytuje zawartość pliku, ładując wszystkie bieżące wartości.