Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在gulp中同步执行任务_Gulp - Fatal编程技术网

在gulp中同步执行任务

在gulp中同步执行任务,gulp,Gulp,我在网上读到,“运行序列”将确保所有指定任务同步运行。出于某种原因,我的情况并非如此。我错过什么了吗 “convertsastocss”是无法按预期工作的任务 如果我分别运行“cleanAllCss”和“convertsastocss”任务,它就会工作 这里的想法是首先从目录中删除所有css文件,然后将所有sass文件转换为css,并将文件放入已清理的目录中 // “严格使用”; var gulp=需要(“gulp”), rimraf=要求(“rimraf”), concat=需要(“吞咽co

我在网上读到,“运行序列”将确保所有指定任务同步运行。出于某种原因,我的情况并非如此。我错过什么了吗

“convertsastocss”是无法按预期工作的任务

如果我分别运行“cleanAllCss”和“convertsastocss”任务,它就会工作

这里的想法是首先从目录中删除所有css文件,然后将所有sass文件转换为css,并将文件放入已清理的目录中

//
“严格使用”;
var gulp=需要(“gulp”),
rimraf=要求(“rimraf”),
concat=需要(“吞咽concat”),
cssmin=需要(“吞咽cssmin”),
uglify=需要(“吞咽uglify”),
sass=require('gulp-sass'),
重命名=需要('gulp-rename'),
del=需要('del'),
runSequence=require('run-sequence');
变量路径={
webroot:“./wwwroot/”
};
path.cssPath=path.webroot+“css/*.css”;
path.cssOutputPath=path.webroot+“css”;
//无礼
path.sassPath=path.webroot+“sass/***.scss”;
path.sassOutputPath=path.webroot+“/css/file”;
任务(“cleanAllCss”,函数(cb){
log(“2--删除所有CSS文件”);
del([path.cssOutputPath+“/*.css”],cb);
log(“2—完成—删除所有css文件”);
});
吞咽任务(“convertsastocss”,函数(cb){
log(“3——将所有SASS文件转换为相应的CSS”);
gulp.src(paths.sassPath)
.pipe(sass())
.管道(吸气目的地(路径cssOutputPath));
log(“3—完成—将所有SASS文件转换为相应的CSS”);
});
//不工作,应按顺序运行
gulp.task(“convertAllSassIntoCssMin”,函数(回调){
log(“1——将所有SASS文件转换为相应的最小CSS文件”)
运行序列('cleanAllCss','convertsastocss',回调);
log(“1—完成—将所有SASS文件转换为相应的最小CSS文件”)
});我不能对运行序列说话,因为我以前没有使用过它

但是,您可以使用Gulp的任务依赖项功能按顺序运行任务,其中任务将不运行,直到其依赖项完成运行

您的新任务签名

  • cleanAllCss
    保持不变:

    gulp.task(“cleanAllCss”,函数(cb){…}

  • convertstocsts
    更改为:

    gulp.task(“convertsastocss”,['cleanAllCss'],函数(cb){…}

  • convertAllSassIntoCssMin
    更改为:

    gulp.task(“convertallsasintocssmin”,['convertSassToCss'],函数(cb){…}

  • 这确保了
    convertAllSassIntoCssMin
    convertsastocss
    完成之前不会运行,而
    cleanalcss
    完成之后才会运行

    gulp.task("cleanAllCss", function (cb) {
        console.log("2 -- Removing all CSS files");
        del([paths.cssOutputPath + "/*.css"]).then(paths => {
            console.log("2 -- DONE - Removed all css files");
            cb();
        };
    
    });
    
    请参阅“吞咽”:

    副总裁

    类型:数组

    在执行任务之前要执行和完成的任务数组 跑

    gulp.task('mytask',['array','of','task','names',function(){
    //Do stuff});注意:您的任务是否在依赖项之前运行 是否已完成?请确保您的依赖项任务正确使用 异步运行提示:接受回调或返回承诺或事件 小溪

    如果只想运行一个包,也可以省略该函数 依赖项任务:

    gulp.task('build',['array','of','task','names');注意:任务 将并行运行(所有任务同时运行),因此不要假设任务 将按顺序开始/结束


    问题出在
    cleanAllCss
    任务中。del接受的第二个参数不是您试图传递的回调。回调从未执行过。请在删除完成后尝试手动运行它

    gulp.task("cleanAllCss", function (cb) {
        console.log("2 -- Removing all CSS files");
        del([paths.cssOutputPath + "/*.css"]).then(paths => {
            console.log("2 -- DONE - Removed all css files");
            cb();
        };
    
    });
    

    “不工作”是什么意思?执行“ConvertallSassinSintocssmin”任务的结果是什么?控制台上打印的是什么?它不会生成css文件并将其输出到我上面提到的目录中。控制台输出1,2,2,1,最后进程以代码0终止。永远不会到达3,但应该是