Sto cercando di generare risorse combinate JavaScript e CSS in un unico file utilizzando gulp-concat utilizzando qualcosa di simile:Gulp - Come faccio a controllare ordine di elaborazione con gulp-concat
var concatjs = gulp
.src(['app/js/app.js','app/js/*Controller.js', 'app/js/*Service.js'])
.pipe(concat('app.js'))
.pipe(gulp.dest('build'));
ho un concatted file con questo, ma l'ordine dei file javascript incorporati nel file di output combinato è casuale - in questo caso i controller vengono visualizzati prima del file app.js iniziale, che causa problemi durante il tentativo di caricare l'app Angolare che si aspetta l'app. js prima che una qualsiasi delle risorse correlate sia caricata. Allo stesso modo, le risorse CSS che vengono combinate finiscono in ordine casuale, e ancora una volta l'ordine è piuttosto importante - es. bootstrap deve essere caricato prima del tema e di eventuali fogli di stile personalizzati.
Come posso impostare il processo di concatenazione in modo che l'ordine rimanga intatto?
Aggiornamento Così si scopre l'ordinamento sopra SI effettivamente lavoro specificando esplicitamente l'ordine dei file nella gamma di specifiche di file. Quindi in questo caso la cosa fondamentale è elencare prima app/js/app.js, poi lasciare il resto degli script in cui l'ordine non ha importanza in nessun ordine.
Il motivo per cui non sono riuscito a vedere questo comportamento (Duh!) È che Gulp Watch era in esecuzione e l'aggiornamento gulpfile.js non si rifletteva effettivamente nell'output. Il riavvio di gulp ha aggiornato lo script. Errore Neophyte ...
Altri pensieri: Ancora chiedendo però - è questo il posto giusto per specificare l'ordine di costruzione? Sembra che tu stia riempiendo la logica dell'applicazione (ordine di caricamento) nello script di build, il che non sembra corretto. Ci sono altri approcci per affrontare questo?
Hai provato dando nomi file in sequenza invece di passare un'espressione regolare per leggi tutti i file. – pankajanand18
questo sembra un problema simile http://stackoverflow.com/questions/21961142/gulp-concat-scripts-in-order – CMR
Il mio script originale includeva nomi di file espliciti e che inizialmente non funzionavano. Risulta comunque che il problema era che gulp-watch era in esecuzione e non aggiornava le modifiche di gulpfile.js (duh!). Eseguire nuovamente l'esecuzione con il file aggiornato rispettava effettivamente l'ordine delle specifiche del file sorgente. Grazie! –