簡體   English   中英

Gulp pipe 創建文件並使用這些文件

[英]Gulp pipe creating files and using those files

我正在玩 gulp,我偶然發現了這個我無法理解的問題。 我有一些任務:

gulp.task('concat-js', (done) => {
  gulp.src('src/app/**/*.js')
    .pipe(concat('app-script.js'))
    .pipe(gulp.dest('src/app/dist/'));

  done();
});

gulp.task('minify-js', (done) => {
  gulp.src('src/app/dist/*.js')
    .pipe(minify({noSource: true, ignoreFiles: ['*-min.js']}))
    .pipe(gulp.dest('src/app/dist/'));

  done();
});

gulp.task('compress',
  gulp.series('concat-js', 'minify-js', function(done) {
    // default task code here
    done();
  })
);

gulp.task(
  'run',
  gulp.series('compress', () => {
  ...
  }
));

我的目標是在執行 run時,將源文件連接起來,然后將該文件的縮小版本連接起來。 但是我在串行執行這些任務時遇到了某種問題。 當我第一次執行run時,應用程序沒有運行,只有app-script.js被創建。 第二次運行它會創建 app-script-min.js 文件。

據我了解minify-js不會等待concat-js完成創建文件。

我認為這可能是因為在 gulp 完成之前調用了 done() 。 嘗試改變

gulp.task('concat-js', (done) => {
  gulp.src('src/app/**/*.js')
    .pipe(concat('app-script.js'))
    .pipe(gulp.dest('src/app/dist/'));

  done();
});

gulp.task('concat-js', (done) => {
  gulp.src('src/app/**/*.js')
    .pipe(concat('app-script.js'))
    .pipe(gulp.dest('src/app/dist/'))
    .on('finish', function() {
        done();
    });

});

我還發現了這個資源,你可能會感興趣。 http://www.ericcredeur.com/gulp/javascript/2015/07/15/cascading-gulp-tasks.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM