powiedzmy, po tym, jak wymagają moduł i zrobić coś jak poniżej:Jak usunąć moduł po "require" w pliku node.js?
var b = require('./b.js');
--- do something with b ---
Następnie chcę zabrać moduł B (to znaczy oczyścić pamięć podręczną). jak mogę to zrobić?
Powodem jest to, że chcę dynamicznie ładować/usuwać lub aktualizować moduł bez restartowania serwera węzła. dowolny pomysł?
------- -------- bardziej opiera się na sugestii, aby usunąć require.cache, to nadal nie działa ...
what I did are few things:
1) delete require.cache[require.resolve('./b.js')];
2) loop for every require.cache's children and remove any child who is b.js
3) delete b
Jednak, gdy Wzywam b, nadal tam jest! jest nadal dostępny. chyba że to zrobię:
b = {};
nie jestem pewien, czy jest to dobry sposób na obsłużenie tego. ponieważ później, wymagam ('./b.js') ponownie, podczas gdy b.js został zmodyfikowany. Czy będzie wymagać starego buforowanego pliku b.js (który próbowałem usunąć), czy nowego?
----------- Więcej informacji --------------
ok. zrobić więcej badań i odtwarzanie z kodem .. oto co znalazłem:
1) delete require.cache[] is essential. Only if it is deleted,
then the next time I load a new b.js will take effect.
2) looping through require.cache[] and delete any entry in the
children with the full filename of b.js doesn't take any effect. i.e.
u can delete or leave it. However, I'm unsure if there is any side
effect. I think it is a good idea to keep it clean and delete it if
there is no performance impact.
3) of course, assign b={} doesn't really necessary, but i think it is
useful to also keep it clean.
Zmienna przypisać wynik 'require ('./ b')' nie zostanie usunięty, 'delete' operacja będzie tylko pozwalają wymagać złożyć Drugi raz bez uzyskania wersji z pamięci podręcznej, ale zmienna nie zostanie magicznie zaktualizowana, kiedy to zrobisz. – robertklep
tak .. ur right .. i tutaj jest to, co znajdę ... (zobacz moje wydanie) – murvinlai
możliwy duplikat [node.js require() cache - możliwe do unieważnienia?] (Http://stackoverflow.com/ pytania/9210542/node-js-require-cache-possible-to-invalidate) – Gajus