write()
yöntemi, ileri akış dönüştürmeleri yoluyla faktör paketi eklentisi tarafından oluşturulan gruplarını paketlemenize olanak veren bir yazılabilir akışı döndürür. Örneğin
, sizin write()
yöntem şöyle görünebilir:
var path = require('path');
var file = require('gulp-file');
var sourcemaps = require('gulp-sourcemaps');
function write (filepath) {
return concat(function (content) {
// create new vinyl file from content and use the basename of the
// filepath in scope as its basename.
return file(path.basename(filepath), content, { src: true })
// uglify content
.pipe(uglify())
// write content to build directory
.pipe(gulp.dest('./build/scripts'))
});
}
Ve bu gibi kullanmak olacaktır: factor-bundle
eklentisini kullanarak
browserify({
entries: [ 'a.js', 'b.js'],
plugin: [ [ 'factor-bundle', { outputs: [ write('a.js'), write('b.js') ] } ] ]
})
.bundle()
.pipe(write('common.js'))
// Could have use these instead, but it wouldn't be as DRY.
// .pipe(source('common.js'))
// .pipe(uglify())
// .pipe(gulp.dest('./build/scripts'))
.bundle()
sonra browserify çıktısını etkiler denir. Normal olarak, giriş dosyalarınızın her birine eşleşebilen okunabilir akışlar olarak gruplar oluşturur, daha sonra bunlara daha fazla dönüşüm uygulayabilirsiniz.
Bunun yerine ben Yukarıdaki örnekte üzerinde common.js
çağrıda verilen giriş dosyalarından paylaşılan ortak modülleri ile bir paket içeren tek okunabilir akışı alacak. Daha sonra, her giriş dosyasına eşlenen okunabilir akışların transfomasyonlarını ele almanız gerekir. I çıkışları diziye yazılabilir akışları ekledikten Yukarıdaki örnekte
, okunabilir akışı olarak, kendi paketleri verilmesi ve bunlara başka dönüşümler geçerli zaman giriş dosyaları, aynı sırada düzenlenmiş
Yapabilirdin
var b = browserify({ ... });
b.on('factor.pipeline', function (id, pipeline) {
pipeline.get('wrap').push(write(id));
});
b.plugin(factor);
return b.bundle().pipe(write('common.js'));
Ben çıkışlar daha da aşağı çalışmalarını uygulayarak tamamen boru hattından müstakil olması dikkati çekiyor düşünüyorum: Ayrıca factor.pipeline
event kaldıraç. Eğer gulp kullanıyor ve akışını tarayıcıdan döndürdüyseniz, görev zamanından önce tamamlanmış olacaktı, çünkü hala giriş dosyalarında işlem gerçekleştiriyordu. Bununla henüz sorunlarına katılmadım.
Bu yardımcı olur umarım.
Detaylı çözüm için teşekkürler. Sorunun tamamlanmasını temsil etmeyen akışı iade ettiğim sorunu nasıl çözeceğime dair bir fikriniz var mı? – Naor