2

我现在是第一次使用 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;

吞咽输出

[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
...

我正在使用以下版本:

  • 吞咽 v4.0.2
  • 节点 v15.2.0
  • macOS 11.5.1
4

1 回答 1

2

无需从函数返回createHtml函数。您正在返回匿名函数并且该匿名函数正在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
}
于 2021-08-03T10:17:09.340 回答