如何在新 gulp 任务 api 中使用旧式任务名称?

How can I use old style task names with the new gulp task api?

根据 https://gulpjs.com/docs/en/api/task 创建任务的新方法不是 gulp.task("xyz" ...) 而是使用 exports.build = build; 这种方法的问题是,我不能再使用像 feature:buildfeature:watch 这样的旧任务名称,因为我只能导出有效的 JS 标识符。

有什么办法可以用新方法实现这个吗?

这是一个非常基本的问题。使用语法 exports[taskName] = taskFunction;,例如

exports['feature:build'] = function () {
   // ...
};

您可能想在这里阅读更多内容:https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Basics#Bracket_notation

偶然找到答案。

每个TaskFunction都有一个属性displayName,它不只是改变用于在任务列表或运行ning时显示任务的名称, 但 您需要传递的任务名称 gulp 才能 运行 它。

所以它会是这样的:

export const myTask :TaskFunction = () => ...;
myTask.displayName = "run:task";