2014-07-10 14 views
7

Uygulamamızda gulp kullanıyorum, bir tane üretim için geliştirme ve ikincisi olmak üzere Gulpfile.js'de 2 akış var, ancak 2 index.html dosyalarını tutmak istemiyorum. index.html ve index.dev. html, bir index.html dosyasına sahip olmak istiyorum, ancak üretim için gerekli olan e-postalarım var.Scriptleri index.html'den gulp yoluyla çıkarın

<!--dev depends --> 
    <script src="angular-mocks/angular-mocks.js"></script> 
    <script src="server.js"></script> 
<!--dev depends --> 

soru şudur: nasıl Gulp aracılığıyla html bir şey kaldırabilirim? Sen yaklaşabilir

https://www.npmjs.org/package/gulp-html-replace

cevap

10

Sen bu özel amaç için tasarlanmıştır eklentisi yudum-html-değiştirin kullanabilirsiniz Yapınızda şablonu:

var template = require('gulp-template'); 

//production task 
gulp.task('prod', function() { 
    return gulp.src('src/index.html').pipe(template({ 
     scripts : [] 
    })).pipe(gulp.dest('dist')); 
}); 


//dev task 
gulp.task('prod', function() { 
    return gulp.src('src/index.html').pipe(template({ 
     scripts : ['angular-mocks/angular-mocks.js', 'server.js'] 
    })).pipe(gulp.dest('dist')); 
}); 

ve sizin index.html bir şablona dönüşmüş olabilir gibi pek:

<% _.forEach(scripts, function(name) { %><script src="<%- name %>" type="text/javascript"></script><% }); %>

Tabii ki index.html komut dosyalarını kaldırır kendi eklenti/geçiş akışı yazabilirim ama gerçek ayrıştırma/yeniden yazma index.html 'nin gerektirecektir. Şahsen ben şablon tabanlı çözüm yerine koymak ve daha "zarif" bulmak daha kolay.

+1

Yerine boş bıraktım ve çalışıyor –

6

farklı hafifçe geçerli:: sizin index.html templatize ve işlemek için gulp-template eklenti kullanmak

+0

"Sen yaklaşabilirsin ** biraz **" '' '' '' '' '' '' '' in should olması gerektiğine inanıyorum. Ben haklı mıyım – Zanshin13