Attualmente sto lavorando su un grande progetto JavaScript per il quale vogliamo definire la nostra API. Sto usando RequireJS come caricatore delle dipendenze e mi sta benissimo, permettendomi di definire i moduli nei rispettivi file. Non faccio uso del mio proprio spazio dei nomi, un modulo restituisce un esempio, che può essere utilizzato in altri moduli, vale a dire:Come strutturare un progetto JavaScript usando RequireJS
define(
['imported_module'],
function(module){
module.doSomething();
}
)
Tuttavia, come il numero di file cresce, mi piacerebbe decidere come strutturare questi file in cartelle. Attualmente io uso il seguente schema per nominare i miei file:
[projectname].[packagename].[ModuleName]
Un esempio potrebbe essere stackoverflow.util.HashMap.js. Vorrei introdurre una cartella di progetto, una cartella per ogni pacchetto e rinominare i file per il nome del modulo, come:
stackoverflow/util/HashMap.js
Questo strutture il mio codice abbastanza ordinatamente in cartelle, tuttavia il nome del file riflette solo il modulo ora. Mi piacerebbe definire una sorta di routing per poter definire come RequireJS dovrebbe cercare i file. Esempio:
Il file
stackoverflow/util/stackoverflow.util.HashMap.js
dovrebbe essere importabile dalla dichiarazione
define(['stackoverflow.util.HashMap'],function(HashMap){});
Qualcuno ha esperienza con grandi progetti strutturanti JavaScript e in caso affermativo, potrebbe condividere il tuo approccio?
probabilmente si può fare che con un plugin personalizzato ... qualcosa come 'utilizzare stackoverflow.util.HashMap' – blockhead
Come zuccone detto:! Il plugin API ha una funzione di "normalizzare" che prende il nome e lo traduce in un percorso . Dai un'occhiata a: http://requirejs.org/docs/plugins.html # apinormalize – David