如何使用Gulp.js将流保存到多个目的地? [英] How to save a stream into multiple destinations with Gulp.js?

查看:95
本文介绍了如何使用Gulp.js将流保存到多个目的地?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  var gulp = require('gulp'); 
var $ = require('gulp-load-plugins')();
var source = require('vinyl-source-stream');
var browserify = require('browserify');
$ b gulp.task('scripts',function(){
return 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')); //失败。app.min.js没有保存。
));

当file.contents是一个当前你不得不为每个dest使用两个数据流使用file.contents作为流,将来可能会被修复。

  var gulp = require('gulp') ; 
var rename = require('gulp-rename');
var streamify = require('gulp-streamify');
var uglify = require('gulp-uglify');
var source = require('vinyl-source-str eam');
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(重命名('bundle.min.js'))
.pipe(streamify(uglify())
.pipe(gulp.dest('./ dist'));

return es.concat(normal,min);
});

编辑:这个bug现在已经在gulp中修复了。原始帖子中的代码应该可以正常工作。


var gulp = require('gulp');
var $ = require('gulp-load-plugins')();
var source = require('vinyl-source-stream');
var browserify = require('browserify');

gulp.task('scripts', function () {
  return 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.
});

Piping to multiple destinations when file.contents is a stream is not currently supported. What is a workaround for this problem?

解决方案

Currently you have to use two streams for each dest when using file.contents as a stream. This will probably be fixed in the future.

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);
});

EDIT: This bug is now fixed in gulp. The code in your original post should work fine.

这篇关于如何使用Gulp.js将流保存到多个目的地?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆