Przepraszam, jeśli jest to głupie pytanie, ale jeśli stworzę 2 moduły, które wymagają ("http") i moją główną aplikację, która wymaga obu modułów, lub wymaga modułów, które z kolei wymagają obu modułów, a jednocześnie wymagają "http" dla do własnych celów, czy mam do czynienia z trzema instancjami modułu http, z których każdy jest zamknięty w ramach innego zamknięcia, czy też węzeł przepisuje coś, aby tego uniknąć?moduły nodejs i powielanie? Jeśli aplikacja używa dwóch modułów, które wymagają wspólnego modułu, czy optymalizuje węzeł, aby zapobiec dwukrotnemu załadowaniu tego samego kodu?
Innymi słowy, muszę skończyć z aplikacji, która posiada:
// main app creates a closure containing a local instance of http, an instance of proxy1
// and an instance of proxy2, both of which are functions returned from closures that have instances of http in scope
var http = require('http'),
httpProxy1 = require('./proxy1'),
httpProxy2 = require('./proxy2');
/* ... do stuff with http, using proxy1 or proxy2 where appropriate ... */
// proxy1 creates a closure containing a local instance of http and exposes a single public method
var http = require('http');
module.exports = function (foo) { /* ... do stuff with http ... */ }
// proxy2 creates a closure containing a local instance of http and exposes a single public method
var http = require('http');
module.exports = function (foo) { /* ... do stuff with http that has nothing to do with the stuff proxy1 does ... */ }
Gdybym również użyć proxy1 niezależnie, ma sens, aby mieć go jako moduł, ale nawet małego projektu może to prowadzić do wielu modułów, które wszystkie wymagają kilku podstawowych modułów, szczególnie http i fs