1

Streamqueue、sass、plumber を使用して gulp タスクで問題が発生し、最後にそれを監視します。タスクは、ベンダーの css|scss ファイルからのプロダクション css ファイルを自分のものでコンパイルしています。

gulp.task('fincss', function () {
    watch([workData.sassSrcFiles, workData.cssVendorSrcFiles], {}, function () {
        var convertFromScssToCssAndConcat =
            gulp.src(workData.sassSrcFiles)
                .pipe(plumber(error))
                .pipe(sass());

        var minifyAndConcatExistingCss =
            gulp.src(workData.cssVendorSrcFiles)
                .pipe(plumber(error));

        return sq({objectMode: true}, minifyAndConcatExistingCss, convertFromScssToCssAndConcat)
            .pipe(concat('final.min.css'))
            .pipe(uglifycss())
            .pipe(gulp.dest(workData.cssDest))
            .pipe(livereload());
    });
});

var error = function (e) {
    console.error('Error in plugin "' + e.plugin + '"');
    console.error('   "' + e.message + '"');
    console.error('   In file "' + e.fileName + '", line "' + e.lineNumber + '".');
    console.log('--------------------------------------');
    console.log(e);
};

しかし、scss ファイルでエラーが発生すると、タスクが中断されます。そして、インターネットで提供されている配管工の実験は、とにかく私には役に立ちません。の前に plumber() を挿入したり、エラー ハンドラでconcat使用したりしても何も起こりません。this.emit('end')

他の私のタスクでは

gulp.task('toHtml', function () {
    watch(workData.pugSrcFiles, {}, function (e) {
        message('Start generating template.');
        gulp.src([workData.pugSrcFiles, '!' + workData.pugSrc + '_*.pug'])
            .pipe(plumber(error))
            .pipe(pug({pretty: true}))
            .pipe(gulp.dest(pubDir))
            .pipe(livereload());
    });
});

すべてがかなりうまく機能し、タスクを壊すことはありません。

助けてください。

4

1 に答える 1

0

stream-series を使用して streamqueue を置き換えることができます。

設定ファイルを次のように変更します。

var series = require('stream-series');

gulp.task('fincss', function () {
    watch([workData.sassSrcFiles, workData.cssVendorSrcFiles], {}, function () {
        var convertFromScssToCssAndConcat =
            gulp.src(workData.sassSrcFiles)
                .pipe(plumber({errorHandler: function(error) {
                     convertFromScssToCssAndConcat.emit('end')  // important
                 }}))
                .pipe(sass());

        var minifyAndConcatExistingCss =
            gulp.src(workData.cssVendorSrcFiles)
                .pipe(plumber(error));

        return series(minifyAndConcatExistingCss, convertFromScssToCssAndConcat)
            .pipe(concat('final.min.css'))
            .pipe(uglifycss())
            .pipe(gulp.dest(workData.cssDest))
            .pipe(livereload());
    });

});

于 2016-08-19T07:02:14.100 に答える