La solution consiste à utiliser:
delete require.cache[require.resolve(<path of your script>)]
Trouvez ici quelques explications de base pour ceux qui, comme moi, sont un peu nouveaux dans ce domaine:
Supposons que vous ayez un example.jsfichier factice à la racine de votre répertoire:
exports.message = "hi";
exports.say = function () {
console.log(message);
}
Alors vous require()aimez ça:
$ node
> require('./example.js')
{ message: 'hi', say: [Function] }
Si vous ajoutez ensuite une ligne comme celle-ci à example.js:
exports.message = "hi";
exports.say = function () {
console.log(message);
}
exports.farewell = "bye!"; // this line is added later on
Et continuez dans la console, le module n'est pas mis à jour:
> require('./example.js')
{ message: 'hi', say: [Function] }
C'est alors que vous pouvez utiliser delete require.cache[require.resolve()]indiqué dans la réponse de luff :
> delete require.cache[require.resolve('./example.js')]
true
> require('./example.js')
{ message: 'hi', say: [Function], farewell: 'bye!' }
Ainsi, le cache est nettoyé et require()capture à nouveau le contenu du fichier, en chargeant toutes les valeurs actuelles.