Ich hatte eine Menge das gleiche Problem mit Gulp, für verschiedene Aufgaben Rohrleitungen an mehrere Ziele scheint schwierig oder möglicherweise unmöglich. Auch das Einrichten mehrerer Streams für eine Aufgabe scheint ineffizient zu sein, aber ich denke, das ist die Lösung für den Moment.
Für mein aktuelles Projekt benötigte ich mehrere Bundles, die verschiedenen Seiten zugeordnet werden. Modifizieren der Gulp Starter
https://github.com/greypants/gulp-starter
browserify/watchify Aufgabe:
https://github.com/dtothefp/gulp-assemble-browserify/blob/master/gulp/tasks/browserify.js
I Innenseite des glob Modul Rückruf eine forEach Schleife verwendet:
gulp.task('browserify', function() {
var bundleMethod = global.isWatching ? watchify : browserify;
var bundle = function(filePath, index) {
var splitPath = filePath.split('/');
var bundler = bundleMethod({
// Specify the entry point of your app
entries: [filePath],
// Add file extentions to make optional in your requires
extensions: ['.coffee', '.hbs', '.html'],
// Enable source maps!
debug: true
});
if(index === 0) {
// Log when bundling starts
bundleLogger.start();
}
bundler
.transform(partialify)
//.transform(stringify(['.html']))
.bundle()
// Report compile errors
.on('error', handleErrors)
// Use vinyl-source-stream to make the
// stream gulp compatible. Specifiy the
// desired output filename here.
.pipe(source(splitPath[splitPath.length - 1]))
// Specify the output destination
.pipe(gulp.dest('./build/js/pages'));
if(index === (files.length - 1)) {
// Log when bundling completes!
bundler.on('end', bundleLogger.end);
}
if(global.isWatching) {
// Rebundle with watchify on changes.
bundler.on('update', function(changedFiles) {
// Passes an array of changed file paths
changedFiles.forEach(function(filePath, index) {
bundle(filePath, index);
});
});
}
}
// Use globbing to create multiple bundles
var files = glob('src/js/pages/*.js', function(err, files) {
files.forEach(function(file, index) {
bundle(process.cwd() + '/' + file, index);
})
});
});
Kann nicht speichern wir die Ausgabe des Bündels(), 'var Bündel = browserify (‘ ./ src/index.js') bündeln (.), ' und dann an die 2-Feed verschiedene "Pipes"? wie 'bundle.pipe (source ('bundle.js')). Pipe (gulp.dest ('./ dist'));' und 'bundle.pipe (umbenennen ('bundle.min.js')) .pipe (streamify (uglify()) .pipe (gulp.dest ('./ dist')); ' Also wird bundle einmal ausgeführt und wir verwenden die Ausgabe zweimal – AntouanK
Aus welcher Version von gulp ist dieser Bug behoben ? –
@ AlirezaMirian +1 für das Wissen, welche Version es behoben wurde – anjunatl