1

我正在关注这样的文件的更改:

gulp.watch(['./src/js/**/*', './src/templates/**/*', config.vendor.js], ['js']);

我的构建过程的一部分涉及使用“angular-filesort”模块(尽管这并不重要)。如果我按如下方式实现任务并使用管道工,当文件排序失败时,gulp 不会退出,“watch”将继续检查我想要的更新:

gulp.task('js', function() {
    gulp.src('./src/js/**/*.js').pipe(plumber()).pipe(angularFilesort());
});

但是,如果我在流队列中结束这个过程,当文件排序失败时 gulp 将退出,这是我不想要的:

gulp.task('js', function() {
    streamqueue({
    objectMode: true
    },
    gulp.src('./src/js/**/*.js').pipe(plumber()).pipe(angularFilesort())
    )
});

我怎样才能解决这个问题?

具体来说,我正在做这样的事情来处理 3 组不同的 JavaScript 文件,然后将它们连接起来:

streamqueue({
  objectMode: true
},
gulp.src(config.vendor.js),
gulp.src('./src/js/**/*.js').pipe(angularFilesort()),
gulp.src(['src/templates/**/*.html']).pipe(templateCache({
  module: mainAngularModuleName
})))
.pipe(sourcemaps.init())
.pipe(concat('app.js'))
etc.

有没有一种方法可以在没有流队列的情况下解决这个问题?

4

2 回答 2

1

我有一个类似的问题,从流队列切换​​到流系列为我解决了这个问题。它也比流队列更干净,因为您不需要指定对象模式。

于 2015-07-13T16:46:26.183 回答
0

我发现重新安装节点并升级我的所有软件包解决了这个问题。

于 2015-01-19T07:17:49.873 回答