如何在 gulp 中获取可用任务列表

Posted

技术标签:

【中文标题】如何在 gulp 中获取可用任务列表【英文标题】:How to get the available tasks list in gulp 【发布时间】:2015-08-26 22:14:31 【问题描述】:

嗨,以前我使用grunt,因为我想知道可用的任务使用grunt --help。但与gulp 相同,使用gulp --help 它不会显示。知道gulp中可用任务列表的命令是什么

【问题讨论】:

【参考方案1】:

没有执行此操作的本机命令,但我使用 this plugin 和以下代码:

module.exports.help = require('gulp-help')(gulp, description : false);

然后我可以在控制台中运行默认的gulp 任务,它会显示任务和定义列表。

【讨论】:

谢谢。有没有办法在不使用`gulp-help`的情况下进入控制台 不是我遇到过的,我想如果你回到原生使用 nodeJS 会有一种方法,但这听起来过于复杂。如果您找到答案,请发布。 使用gulp --tasks【参考方案2】:

是的,我得到它使用gulp --tasks in 命令然后它显示任务列表。

【讨论】:

ihhh我看到的,那不是3.9.0只带来了4.0,漂亮的信息 span> @MatthewRath 3.9.x 也有 --tasks 标志。所以它可以工作(至少在我本地的 3.9.1 上) gulp --tasks-simple 可能更好,因为它只显示***任务,一个非常干净的列表,而 gulp --tasks 还显示任务依赖关系图——我想这完全取决于你有多少细节想要。 这将任务深度限制在顶层并显示描述:gulp -T --depth 1【参考方案3】:

你也可以使用这个插件gulp-task-listing。它给出了main-taskssub-tasks list

【讨论】:

我无法在 Gulp 3.9 中使用它。不断收到此错误:*TypeError:* 无法将 undefined 或 null 转换为对象。 因为 gulp.tasks 为 null。 yah @VinegarStrokes 我对 Gulp 4 也有同样的问题。你解决了吗?【参考方案4】:

作为替代方案,您可以使用 gulp-task-doc 在 js cmets 中为您的任务编写详细文档

【讨论】:

【参考方案5】:

另一种可能性是使用gulp-help-doc 模块,它提供了在gulpfile 中基于类似jsDoc 的cmets 打印使用信息的可能性。目前它也支持 TypeScript。好处是您只需在不更改 gulp API 的情况下评论您的代码,并且您在命令行中也有使用信息。

【讨论】:

【参考方案6】:
gulp --tasks-simple

此命令打印任务的明文列表。我的本地项目:

~ gulp --tasks-simple
clean
default

来自gulp CLI documentation:

~ gulp --version
[03:00:05] CLI version 1.2.1
[03:00:05] Local version 4.0.0-alpha.2
~ gulp --help | grep 'tasks-simple'
  --tasks-simple   Print a plaintext list of tasks for the loaded gulpfile. [boolean]

【讨论】:

【参考方案7】:

如果您使用 Gulp 4,您可以执行以下操作:

const tasks = gulp.registry().tasks();

// Outputs a JS object:  <task name>: <function>, ...
console.log(tasks);

const taskNames = Object.Keys(tasks);

// Outputs a JS array: ['<task name>', ...]
console.log(taskNames);

【讨论】:

【参考方案8】:

灵感来自@matt-gaunt https://***.com/a/65571474/1347601

// gulp task
const list = () => 
    
    const tasks = gulp.registry().tasks();

    for (const [key, value] of Object.entries(tasks)) 
        console.log(key);
    


gulp.task('list', list);

// gulp process default
gulp.task('list', gulp.series(
    list
));

【讨论】:

以上是关于如何在 gulp 中获取可用任务列表的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android AIR上获取可用网络列表?

如何获取系统上可用的所有 Microsoft 媒体基础转换 (MFT) 的列表

如何在任务完成时告诉 Gulp?

在Visual Studio 2015中启动IIS Express会话后,如何运行gulp任务

如何更改 FreeRTOS 中任务的最大可用堆大小?

如何在任务管理器中获取用户列表