As soluções são usar:
delete require.cache[require.resolve(<path of your script>)]
Encontre aqui algumas explicações básicas para quem, como eu, é um pouco novo nisso:
Suponha que você tenha um example.jsarquivo fictício na raiz do seu diretório:
exports.message = "hi";
exports.say = function () {
console.log(message);
}
Então você require()gosta disso:
$ node
> require('./example.js')
{ message: 'hi', say: [Function] }
Se você adicionar uma linha como esta a example.js:
exports.message = "hi";
exports.say = function () {
console.log(message);
}
exports.farewell = "bye!"; // this line is added later on
E continue no console, o módulo não é atualizado:
> require('./example.js')
{ message: 'hi', say: [Function] }
É quando você pode usar o delete require.cache[require.resolve()]indicado na resposta do luff :
> delete require.cache[require.resolve('./example.js')]
true
> require('./example.js')
{ message: 'hi', say: [Function], farewell: 'bye!' }
Portanto, o cache é limpo e require()captura o conteúdo do arquivo novamente, carregando todos os valores atuais.