Gulp не выполняет задачи в серии - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь написать функцию, которая будет удалять файлы в dist, которых больше нет в sr c. Когда я запускаю задачу «очистить» ниже с помощью «gulp clean» в командной строке, я получаю только «очистить» в качестве вывода на консоль, и файлы не создаются. Это означает, что readSrcFiles, readDistFiles и parseFiles по какой-то причине не работают. Почему?

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]));
        }
    });
}

Сначала у меня не было этого разделения на функции, но затем он запускал только возвращаемую команду sr c, которая, очевидно, не позволяла мне ничего делать потом.

1 Ответ

0 голосов
/ 03 августа 2020

Решена, по крайней мере, эта проблема.

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");
}
...