Gulp 管道创建文件并使用这些文件
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', () => {
...
}
));
我的目标是当 运行 被执行时,我得到我的源文件的连接,然后是该文件的缩小版本。但是我 运行 在连续执行这些任务时遇到了某种问题。
当我第一次执行 运行 时,应用程序不会 运行 而只有 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
我正在玩 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', () => {
...
}
));
我的目标是当 运行 被执行时,我得到我的源文件的连接,然后是该文件的缩小版本。但是我 运行 在连续执行这些任务时遇到了某种问题。 当我第一次执行 运行 时,应用程序不会 运行 而只有 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