如何按顺序运行gulp任务?
我试图通过运行任务将所有css文件压缩到一个已发布的css文件中:如何按顺序运行gulp任务?,gulp,gulp-concat,gulp-task,Gulp,Gulp Concat,Gulp Task,我试图通过运行任务将所有css文件压缩到一个已发布的css文件中: gulp.task('task one', () => { gulp.src([Dir + "**/*.css"]) .pipe(concat(outFilename + ".css")) .pipe(gulp.dest(destDir)); }); 之后,因为输出css文件中的字体路径不正确,所以我需要修改路径 gulp.task('task two', () => {
gulp.task('task one', () => {
gulp.src([Dir + "**/*.css"])
.pipe(concat(outFilename + ".css"))
.pipe(gulp.dest(destDir));
});
之后,因为输出css文件中的字体路径不正确,所以我需要修改路径
gulp.task('task two', () => {
var urlAdjuster = require('gulp-css-url-adjuster');
//change font path for released css files
gulp.src([releasePath + "/*.css"])
.pipe(urlAdjuster({
replace: ['../../fonts', '../fonts'],
}))
.pipe(gulp.dest(releasePath + "/"));
);
为了实现这一点,我需要逐个分别运行这两个任务。
如何按顺序运行这两个任务并将它们放入一个任务中
我试过:
系列=需要“大口系列”--不起作用
gulp.task('task two', ['task one'], function () {
// Gulp. src (...
});
---不起作用
gulp.task('task two', ['task one'], function () {
// Gulp. src (...
});
--更新----------------------------
我以前用过return,但现在可以用了。实际代码为:
function procHTMLForRelease(stream, file) {
gulp.src([Dir + "**/*.css"])
.pipe(concat(outFilename + ".css"))
.pipe(gulp.dest(destDir));
}
function processRelease() {
// Grab all html files in the folder.
// Loop over them, process them, then spit em out.
gulp.src([paths.Source + "/*.html"])
.pipe(foreach(procHTMLForRelease))
.pipe(gulp.dest(paths.Release));
// Process image files
gulp.src([paths.Source + "images/*.*"])
.pipe(gulp.dest(paths.Release + "images/"));
// Copy font files
gulp.src([paths.html + "fonts/*.*", paths.html + "fonts/*/*.*"])
.pipe(gulp.dest(paths.release + "/fonts/"));
}
gulp.task('task one', () => { return processRelease();
});
这是正确的,它将任务1设置为任务2的依赖项。然而,要使其工作,任务1需要返回
您可以像这样修改更新的代码以使其返回 函数中的任务将异步运行,但您可以使另一个函数依赖于所有正在完成的任务
gulp.task('task two', ['task one'], function () {
// Gulp. src (...
});
对于任何有相同问题并正在寻找解决方案的人: 下面是我如何修复它的: 例如:
// This will run in this order:
// * build-clean
// * build-scripts and build-styles in parallel
// * build-html
// * Finally call the callback function
gulp.task('build', function(callback) {
runSequence('build-clean',
['build-scripts', 'build-styles'],
'build-html',
callback);
});
@lofihelsinki我使用了return,但它并没有真正起作用,请参阅我的更新。您必须将每个gulp.src放入它自己的任务中,并返回gulp.src,如我的回答所示。如果您只是在gulp.src前面添加return,那么您的原始示例应该可以工作。您的更新示例没有任何依赖项,因此无法工作。您的原始代码与更新的代码完全不同,为什么?
gulp.task('task two', ['task one'], function () {
// Gulp. src (...
});
// This will run in this order:
// * build-clean
// * build-scripts and build-styles in parallel
// * build-html
// * Finally call the callback function
gulp.task('build', function(callback) {
runSequence('build-clean',
['build-scripts', 'build-styles'],
'build-html',
callback);
});