7

Ho usato la libreria di chiusura di google javascript per una varietà di componenti, e ho anche usato la sua gestione delle dipendenze. Sono curioso di sapere come questo paragoni all'uso di requirejs per la gestione delle dipendenze. In particolare, c'è una ragione particolare per scegliere l'una rispetto all'altra?requirejs vs google javascript chiusura gestione delle dipendenze

Se sto utilizzando la libreria di chiusura di google, ci sarebbe un motivo logico per utilizzare requirejs per gestire le dipendenze rispetto all'utilizzo della gestione delle dipendenze di chiusura? Ci sono degli standard che requirejs segue che la chiusura no?

+0

Direi che entrambi i meccanismi funzionano su un livello diverso. Google Closure è piuttosto utilizzato per la gestione delle dipendenze durante lo sviluppo e quindi utilizzato per compilare tutte le dipendenze in un unico file. require.js e altri sono usati in fase di runtime. –

+1

@FelixKling, questo non è corretto al 100%. RequireJs ha anche un compilatore che può risolvere l'albero delle dipendenze in modo da non doverlo fare nel client. –

risposta

4

La gestione delle dipendenze della libreria di chiusura è concepita per fornire un ordinamento di file per risolvere le dipendenze e viene rimosso dal compilatore di chiusura durante la compilazione (riscritto, se necessario, per fornire gli spazi dei nomi in base alle esigenze). Mentre il compilatore ha un supporto sperimentale per la compilazione del tempo per i moduli AMD, hanno ancora bisogno di un po 'di lavoro sul fronte del controllo dei tipi, in particolare per essere un sostituto completo per il goog di Closure. Anche quando il supporto del compilatore è sufficiente, goog.require non richiede un'analisi completa del JS per eseguire la gestione delle dipendenze (non sono abbastanza familiare con RequireJS per sapere se questo è il caso) e quindi per progetti di grandi dimensioni con molti facoltativi i file goog.require sono attualmente molto più efficienti.

+0

dovrebbe aggiungere che è possibile dividere il codice compilato anche in moduli. – lennel