2015-12-27 15 views
9

Ho provato a configurare gulp-inject per iniettare dipendenze in index.html. Tutto funziona bene tranne la funzione di trasformazione. Ho bisogno di sostituire parte del percorso del file nel modo seguente: /frontend/src/ ->/static/ Ho cercato di fare in questo modo (copia-incollato da qualche parte):La trasformazione di Gulp-inject non funziona

transform : function (filePath, file, i, length) { 
       var newPath = filePath.replace('/frontend/src', ''); 
       console.log('inject script = '+ newPath); 
       return '<script src="/static/' + newPath + '"></script>'; 
      } 

Dopo l'esecuzione, ho nulla (tranne l'output gulp standard) nella console e il filepath non trasformato viene visualizzato nel file dei risultati. Sembra che la mia trasformazione personalizzata non venga eseguita e invece la trasformazione predefinita funzioni.

+2

vedere il vostro la definizione completa di gulpfile o attività potrebbe essere d'aiuto, la risposta di @qcz sembra buona –

+0

mostraci il tuo compito completo in Gulp – harishr

risposta

6

Il seguente sta lavorando per me anche con più livelli (/**/*.js invece di /*.js): funzione

gulp.task('inject', function() { 
    gulp.src('./test.html') 
     .pipe(inject(
      gulp.src(['./Content/js/*.js'], {read: false }), 
      { 
       transform: function (filePath, file, i, length) { 
        var newPath = filePath.replace('/Content/js/', ''); 
        console.log('inject script = '+ newPath); 
        return '<script src="/static/' + newPath + '"></script>'; 
       } 
      }) 
     ) 
     .pipe(gulp.dest('./')); 
}); 
1

gulp-inject di trasformare plugin funziona come previsto. La configurazione del compito sorso è la seguente -

gulp.src(path.normalize('./app/index.html')) 
    .pipe(inject(
     gulp.src([path.normalize('./frontend/src/*.js')], {read: false}), { 
      transform : function (filePath, file, i, length) { 
       var newPath = filePath.replace(path.normalize('/frontend/src'), ''); 
       console.log('inject script = '+ newPath); 
       return '<script src="/static' + newPath + '"></script>'; 
      } 
     } 
    )) 
    .pipe(gulp.dest('./build')); 

Per assicurarsi che funzioni multi-piattaforma (Windows, Linux), path.normalize viene utilizzato

Controllare il codice di esempio a - https://github.com/pra85/gulp-inject-example

Problemi correlati