简体   繁体   English

Gulp 没有在系列中运行任务

[英]Gulp isn't running tasks in a series

I'm trying to write a function that will delete files in dist that no longer exist in src.我正在尝试编写一个 function,它将删除 dist 中不再存在于 src 中的文件。 When I run the task "clean" below with "gulp clean" on the command line, I only get "clean" as console output, and no files are created.当我在命令行上使用“gulp clean”运行下面的任务“clean”时,我只得到“clean”作为控制台 output,并且没有创建任何文件。 This means that readSrcFiles, readDistFiles, and parseFiles aren't running for some reason.这意味着 readSrcFiles、readDistFiles 和 parseFiles 由于某种原因没有运行。 Why?为什么?

task("clean", function () {
        console.log("clean");
        task("default", series(readSrcFiles, readDistFiles, parseFiles));
        del(["temp"]);
        return Promise.resolve("cleaned");
    });

function readSrcFiles() {
    console.log("readSrc");
    return src("./src/**/*")
        .pipe(filelist("_filelist_src.json", { relative: true }))
        .pipe(dest("./temp"));
}

function readDistFiles() {
    console.log("readDist");
    return src("./name.github.io/**/*")
        .pipe(filelist("_filelist_dist.json", { relative: true }))
        .pipe(dest("./temp"));
}
function parseFiles() {
    console.log("parseFiles");
    let srcFiles = JSON.parse(fs.readFileSync("./temp/_filelist_src.json"));
    let distFiles = JSON.parse(fs.readFileSync("./temp/_filelist_dist.json"));
    distFiles.forEach((element) => {
        if (!srcFiles.includes(element)) {
            console.log(del.sync(["name.github.io/" + element]));
        }
    });
}

At first I didn't have this split up into functions, but then it would only run the src command that was being returned, which obviously didn't let me do anything afterwards.起初我没有把它拆分成函数,但它只会运行返回的 src 命令,这显然不允许我在之后做任何事情。

Solved, at least this problem.解决了,至少这个问题。

task(
"default",
series(
    "html_imports",
    parallel(readSrcFiles, readDistFiles),
    parseFiles /* , "serve" */
)
);

function readSrcFiles(res) {
    console.log("src");
    return src("./src/**/*")
        .pipe(filelist("_filelist_src.json", { relative: true }))
        .pipe(dest("./temp"));
}

function readDistFiles(res) {
    console.log("dist");
    return src("./name.github.io/**/*")
        .pipe(filelist("_filelist_dist.json", { relative: true }))
        .pipe(dest("./temp"));
}
function parseFiles(res) {
    console.log("parse");
    let srcFiles = JSON.parse(fs.readFileSync("./temp/_filelist_src.json"));
    let distFiles = JSON.parse(fs.readFileSync("./temp/_filelist_dist.json"));
    distFiles.forEach((element) => {
        if (!srcFiles.includes(element)) {
            console.log(del.sync(["name.github.io/" + element]));
        }
    });
    del.sync(["temp"]);
    return Promise.resolve("cleaned");
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM