1

次のようなファイルの変更を監視しています。

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

私のビルド プロセスの一部には、「angular-filesort」モジュールの使用が含まれます (ただし、これは重要ではないと思います)。次のようにタスクを実装して配管工を使用すると、filesort が失敗したときに gulp が終了せず、「監視」が必要な更新をチェックし続けます。

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

どうすればこれを修正できますか?

具体的には、JavaScript ファイルの 3 つの異なるセットを処理し、それらを連結するために、次のようなことを行っています。

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.

この問題を回避するために、streamqueue を使用せずに上記を実行できる方法はありますか?

4

2 に答える 2

1

同様の問題があり、streamqueue からstream-seriesに切り替えると解決しました。また、オブジェクト モードを指定する必要がないため、streamqueue よりもクリーンです。

于 2015-07-13T16:46:26.183 に答える
0

ノードを再インストールし、すべてのパッケージをアップグレードすると、これが修正されました。

于 2015-01-19T07:17:49.873 に答える