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

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

【问题讨论】:

    标签: javascript node.js 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://stackoverflow.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
            ));

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2017-09-02
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-04-19
              • 1970-01-01
              相关资源
              最近更新 更多