javascript - Gulp 管道创建文件并使用这些文件
问题描述
我正在玩 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
推荐阅读
- sql - 如何使用sql将两个不同的列数据显示在一列中?
- android - 如何使用可绘制的 xml 文件使用图层列表创建这样的波浪效果
- android - 从移动应用程序进行身份验证并从桌面应用程序访问文件
- geometry - 用于正则化或规范化应该是矩形的多边形的算法
- python - (Keras) TensorBoard 回调是否适用于打开 return_state 的循环网络?
- r - R函数-将LMER分配给动态变量名称
- matlab - K-means 排序标签
- c# - 具有子任务数量的任务
- java - 如何可视化所有方法调用方式
- ios - 如何操作 React Native - Native UI 组件的属性?