如何为匿名 gulp (v4) 任务分配名称

How to assign a name to an anonymous gulp (v4) task

我现在是第一次使用 gulp 并遵循 gulp 的建议并导出了我的 gulp 任务。

是运行,结果符合预期。但是在我的控制台上,任务列为 .

如何为导出的 gulp 任务指定名称?

我一直在尝试遵循不同的方法,例如 functionName.displayName = "Custom Name";在导出模块之前,但没有任何效果。

示例 gulp 文件。

const gulp = require('gulp');
const createHtml = require('./scripts/createHtml');
...

module.export = {
    default: gulp.series(createHtml())
}

创建 Html 模块

const gulp = require('gulp');
...

const createHtml = function () {
    return function () {
        return gulp
            .src('./src/pages/**/*.+(html)')
            ... 
            .pipe(gulp.dest('./build/')))
    };
}
createHtml.displayName = "Custom Name";

module.exports = createHtml;

gulp输出

[11:38:50] Using gulpfile ~/Documents/.../gulpfile.js
[11:38:50] Starting 'default'...
[11:38:50] Starting '<anonymous>'...
[11:38:50] Finished '<anonymous>' after 10 ms
[11:38:50] Starting '<anonymous>'...
[11:38:50] Starting '<anonymous>'...
[11:38:50] Finished '<anonymous>' after 24 ms
[11:38:50] Finished '<anonymous>' after 42 ms
...

我正在使用以下版本:

无需 return 来自 createHtml 函数的函数。您正在 returning 匿名函数并且正在 gulp.series() 调用中执行匿名函数,这就是任务名称是匿名的原因。

您需要将命名函数传递给 gulp.series

试试这个 -

const gulp = require('gulp');
...

const createHtml = function () {
     return gulp.src('./src/pages/**/*.+(html)')
     ... 
    .pipe(gulp.dest('./build/')))
}

module.exports = createHtml;

然后在您的 gulp 文件中

const gulp = require('gulp');
const createHtml = require('./scripts/createHtml');
...

module.export = {
    default: gulp.series(createHtml);// pass the function reference here
}