const gulp = require('gulp');
const $ = require('gulp-load-plugins')();
const source = require('vinyl-source-stream');
const browserify = require('browserify');
gulp.task('build', () =>
browserify('./src/app.js').bundle()
.pipe(source('app.js'))
.pipe(gulp.dest('./build')) // OK. app.js is saved.
.pipe($.rename('app.min.js'))
.pipe($.streamify($.uglify())
.pipe(gulp.dest('./build')) // Fail. app.min.js is not saved.
);
当file.contents是流时,当前不支持到多个目标的管道。此问题的解决方法是什么?
发布于 2014-02-22 17:08:38
目前,当使用file.contents作为流时,您必须为每个dest使用两个流。这可能会在未来得到修复。
var gulp = require('gulp');
var rename = require('gulp-rename');
var streamify = require('gulp-streamify');
var uglify = require('gulp-uglify');
var source = require('vinyl-source-stream');
var browserify = require('browserify');
var es = require('event-stream');
gulp.task('scripts', function () {
var normal = browserify('./src/index.js').bundle()
.pipe(source('bundle.js'))
.pipe(gulp.dest('./dist'));
var min = browserify('./src/index.js').bundle()
.pipe(rename('bundle.min.js'))
.pipe(streamify(uglify())
.pipe(gulp.dest('./dist'));
return es.concat(normal, min);
});
编辑:这个bug现在在吞咽中被修正了。你的原始帖子中的代码应该可以正常工作。
发布于 2014-11-23 19:46:01
我也面临着类似的问题,我希望在lint、uglify和minify任务之后,可以将gulp源代码复制到多个位置。我最终解决了这个问题,如下所示
gulp.task('script', function() {
return gulp.src(jsFilesSrc)
// lint command
// uglify and minify commands
.pipe(concat('all.min.js'))
.pipe(gulp.dest('build/js')) // <- Destination to one location
.pipe(gulp.dest('../../target/build/js')) // <- Destination to another location
});
发布于 2017-01-24 01:31:10
对于向多个目的地广播更新的情况,在目的地数组上循环gulp.dest
命令效果很好。
var gulp = require('gulp');
var source = './**/*';
var destinations = [
'../foo/dest1',
'../bar/dest2'
];
gulp.task('watch', function() {
gulp.watch(source, ['sync']);
});
gulp.task('sync', function (cb) {
var pipeLine = gulp.src(source);
destinations.forEach(function (d) {
pipeLine = pipeLine.pipe(gulp.dest(d));
});
return pipeLine;
});
https://stackoverflow.com/questions/21951497
复制相似问题