49 votes

déchargement de code / modules

Je suis curieux de savoir s'il existe un bon moyen de décharger un module après l'avoir utilisé. J'ai des cas où j'ai besoin d'utiliser des modules qui apportent beaucoup de code, mais ils sont rarement utilisés (par exemple en tant qu'outil d'administration), mais j'hésite à les utiliser car après cela, ils gaspilleront probablement de la mémoire qui pourrait être meilleure utilisé ailleurs. Existe-t-il un moyen de les décharger, explicitement ou en permettant au système de le faire alors qu'ils n'ont pas été utilisés depuis un certain temps?

72voto

chjj Points 5676

Oui, il est possible d'accéder directement au cache du module:

 var name = require.resolve('moduleName');
delete require.cache[name];
 

Notez que si votre code porte une référence à tout ce qui a été exposé par ces modules dont vous voulez vous débarrasser, il ne sera pas nettoyé.

(En aparté: sous la surface, require.resolve et require.cache sont que des proxy pour Module._resolveFilename et Module._cache respectivement, avec Module étant le chargeur de module de base, c'est-à-dire require('module') .)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X