La solución es usar:
delete require.cache[require.resolve(<path of your script>)]
Encuentre aquí algunas explicaciones básicas para aquellos que, como yo, son un poco nuevos en esto:
Supongamos que tiene un example.js
archivo ficticio en la raíz de su directorio:
exports.message = "hi";
exports.say = function () {
console.log(message);
}
Entonces te require()
gusta esto:
$ node
> require('./example.js')
{ message: 'hi', say: [Function] }
Si luego agrega una línea como esta a example.js
:
exports.message = "hi";
exports.say = function () {
console.log(message);
}
exports.farewell = "bye!"; // this line is added later on
Y continuar en la consola, el módulo no se actualiza:
> require('./example.js')
{ message: 'hi', say: [Function] }
Ahí es cuando puedes usar lo delete require.cache[require.resolve()]
indicado en la respuesta de luff :
> delete require.cache[require.resolve('./example.js')]
true
> require('./example.js')
{ message: 'hi', say: [Function], farewell: 'bye!' }
Por lo tanto, el caché se limpia y require()
captura el contenido del archivo nuevamente, cargando todos los valores actuales.