2015-01-14 9 views
9

Ho un problema con usemin e non sono sicuro che si tratti di un bug.Può gulp-usemin accettare più file?

La mia struttura applicazione è semplice:

- root 
    |- gulpfile.js 
    |- app 
    | |- index.html 
    | |- about.html 
    | |- contact.html 
    | |- js 
    |  |- a.js 
    |  |- b.js 
    |  |- c.js 
    |  |- d.js 
    |  |- e.js 
    | 
    |- dist 

Ognuno dei miei file html è un blocco usemin in modo da includere tutti gli script, ad esempio:

<!-- build:js js/app.js --> 
<script src="../js/a.js"></script> 
<script src="../js/b.js"></script> 
<script src="../js/c.js"></script> 
<script src="../js/d.js"></script> 
<script src="../js/e.js"></script> 
<!-- endbuild --> 

Quando eseguo la seguente attività :

gulp.task('usemin'. function() { 
    gulp.src('app/*.html') 
     .pipe(usemin({ 
      assetDir: 'app/**/' 
     })) 
     .pipe(dest('dist/')) 
}); 

solo il primo file html verrà copiato nella nuova directory, il js in questo ca se è concatenato come previsto.

quando cambio la gulp.src a gulp.src(['index.html','about.html','contact.html']) ottengo un tema differente, tutti i file html copiare, ma solo il primo in ordine alfabetico corre il blocco usemin sostituendo i 5 script con il nuovo script.

Eventuali approfondimenti sarebbero grandiosi, ho letto estesamente la documentazione di gulp e la documentazione di gulp-usemin e non trovo alcun motivo per cui ciò dovrebbe accadere.

L'esempio sul sito Web NPM per il primo dei miei due casi è addirittura fornito come esempio, non è sicuro che cosa sta succedendo qui? Forse qualcosa a che fare con dove sto correndo il gulpfile?

È possibile?

Cheers.

EDIT: Non so cosa stesse succedendo qui, ma ho creato un progetto totalmente nuovo e ho costruito/installato i plug-in e gli script npm da zero e tutto ha funzionato. Non è una grande soluzione, ma mi ha salvato un po 'di tempo.

+0

Beh, sono almeno manca un preventivo che termina in assetDir: 'app/** /. Inoltre, prendendo a prestito dalla pagina GitHub di gulp-usemin: "Percorso root alternativo per le risorse". Quindi forse dovrebbe essere "app /"? – juunas

+0

@juunas questo è il codice di psudo, ma grazie male correggere quello. I miei extra in questo esempio sono in app/js, quindi ho bisogno di specificare che si trovano in una sottodirectory di app non come i file .html. –

+0

Dopo aver controllato il [codice] (https://github.com/zont/gulp-usemin/blob/master/lib/blocksBuilder.js#L39), l'app/** probabilmente non funzionerà quando viene collegato a [ path.resolve] (http://nodejs.org/api/path.html#path_path_resolve_from_to). – juunas

risposta

0

Invece di usare gulp-usemin basta sovrascrivere il file principale da utilizzare all'interno del vostro bower.json in questo modo:

{ 
    "name": "appName", 
    "dependencies": { 
    "angular": "~1.3.9", 
    "angular-animate": "~1.3.9", 
    "angular-ui-router": "~0.2.13" 
    }, 
    "overrides": { 
    "angular": { 
     "main": "angular.min.js" 
    }, 
    "angular-animate": { 
     "main": "angular-animate.min.js" 
    }, 
    "angular-ui-router": { 
     "main": "release/angular-ui-router.min.js" 
    } 
    } 
} 
Problemi correlati