Recentemente ho iniziato a utilizzare require.js (insieme a Backbone.js, jQuery e una manciata di altre librerie JavaScript) e adoro il modello del modulo (ecco una bella sinossi se non conosci: link ). Qualcosa con cui mi imbatto sono le migliori pratiche sull'incorporazione di librerie che non supportano il modello del modulo (out of the box). Ad esempio, jQuery senza modifiche verrà caricato in una variabile jQuery globale e basta. Require.js lo riconosce e fornisce un progetto di esempio da scaricare con una versione (leggermente) modificata di jQuery da incorporare con un progetto require.js.
Questo va contro tutto ciò che ho imparato sull'uso di librerie esterne - non modificare mai la fonte. Posso elencare una tonnellata di ragioni. Indipendentemente da ciò, questo non è un approccio con cui mi sento a mio agio.
Ho usato un approccio misto - in cui costruisco / carica le librerie JS "tradizionali" in un modo "tradizionale" (disponibile nello spazio dei nomi globale) e poi utilizzo il modello di modulo per tutto il codice dell'applicazione. Questo mi sembra a posto, ma mi infastidisce perché una delle bellezze reali del modello del modulo (nessuna globalità) si sta pervertendo.
Qualcun altro ha una soluzione migliore a questo problema?