2014-04-19 19 views
6

Dosya adını, akıştaki her dosyaya bir yorum olarak eklemenin bir yolunu arıyorum. Sonuç olarak, birleştirilmiş bir hedef dosyasında dosya yoluna sahip bir yorum satırınız olur. şu anda ne yaparGulpjs birleştirme ve dosya adları

:

pseudocode: concat(add_comments(file1, file2)) 
# output: 
# // file1 
# contents of file 1 
# // file2 
# contents of file 2 

cevap

9

Sen birleştirerek önce dosya adını prepend the gulp-wrap plugin kullanabilirsiniz::

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

// in your task... 
    return gulp.src('src/**/*.js') 
     .pipe(wrap('//<%= file.path %>\n<%= contents %>')) 
     .pipe(concat('output.js')) 
     .pipe(gulp.dest('build')) 
elde etmek istiyorum ne

pseudocode: concat(file1, file2) 
# output: 
# contents of file 1 
# contents of file 2 

Sarma eklentisi sarmanıza izin verir akıştaki bir öğenin içeriği bir lodash (veya altçizgi) şablonuyla. Otomatik olarak contents ve file.* özellikleri sağlar.

benim yarattığım şablon çok basit: o yorum için iki eğik çizgi çıktılar içinde geçerken, daha sonra dosyanın path, bir satır ve aynı içeriğine kadar çıktı

+0

Tam olarak ne arıyordum! Teşekkürler! –

+1

Teşekkürler! Şimdi, tam adı değil, dosya adını nasıl alabilirim? "file.name" çalışmadı. Ayrıca, FILE nesnesindeki tüm özelliklerin neler olduğunu nasıl keşfedebiliriz? – getsetbro

+1

@brOlite - 'dosya 'bir vinil nesne gibi görünüyor, bkz. Https://www.npmjs.com/package/vinyl. 'File.relative 'kullanmak benim için çalıştı. – Chris

2

Ben gulp-insert ile yaptım.. Dosya içeriğinin ve Vinil dosya nesnesinin verildiği bir "dönüştürme" işlevine sahiptir ve yeni içeriği döndürürsünüz. Bunu yapabilirsiniz:

.pipe(insert.transform(function(contents, file){ 
    return '// ' + file.path + '\n' + contents; 
})); 
+0

Kabul edilen cevap bir çözüm değil ama benim kullanım durumum için çok daha esnek olması için gulp-insert buldum. –

İlgili konular