grunt.task


本文整理自网络,侵删。

grunt.task

注册、执行和加载外部任务。

参见 task lib source 和 task util lib source 获取更多信息。

The task API

当一个任务正在执行时,Grunt 通过this 对象向此任务函数暴露了很多任务特定的属性和方法。参见 深入任务内幕指南,这里可以找到完整的属性和方法列表。

很多属性和方法都可以通过 this 对象访问到。

注意,任何标记为的 ? (unicode snowman) 方法也可以直接通过 grunt 对象直接访问到。参见 API首页以获取更多信息。

创建任务

grunt.task.registerTask

注册 "别名任务" 或 任务函数。此方法支持以下两种类型:

别名任务

如果指定了一个任务列表,那么,新注册的任务将会是这一个或多个任务的别名(alias)。当此"别名任务"执行时,taskList中的所有任务都将按指定的顺序依次执行。taskList 参数必须是一个任务数组。

grunt.task.registerTask(taskName, taskList)

下面这个案例展示的是定义一个"default" 任务,当执行 Grunt 且不通过参数指定任务时, "jshint"、 "qunit"、"concat" 和 "uglify" 任务将自动执行:

task.registerTask('default', ['jshint', 'qunit', 'concat', 'uglify']);

还可以指定任务的参数。下面的这个案例中,别名"dist"执行了 "concat" 和 "uglify" 这两个任务,并且都指定了"dist" 参数:

task.registerTask('dist', ['concat:dist', 'uglify:dist']);

任务函数

如果传入descriptiontaskFunction,每当任务运行时,指定的函数(taskFunction)都会被执行。此外,当执行 grunt --help时,前面指定的描述(description)就会显示出来。特定任务的属性和方法在任务函数内部通过this对象的属性即可访问。如果任务函数返回false表示任务失败。

注意,grunt.task.registerMultiTask方法将稍候介绍,它可以被用于定义一种特殊类型的任务,即"复合任务"。

grunt.task.registerTask(taskName, description, taskFunction)

下面这个案例中,当 Grunt 运行grunt foo:testing:123时,日志输出foo, testing 123。如果运行这个任务时不带参数,如grunt foo,日志输出foo, no args

grunt.task.registerTask('foo', 'A sample task that logs stuff.', function(arg1, arg2) {
  if (arguments.length === 0) {
    grunt.log.writeln(this.name + ", no args");
  } else {
    grunt.log.writeln(this.name + ", " + arg1 + " " + arg2);
  }
});

参见 创建任务 文档,查看更多任务实现案例和别名任务。

此方法还可以通过 grunt.registerTask调用。

grunt.task.registerMultiTask

注册一个 "复合任务(multi task)"。 复合任务是指在不指定目标(target)时,将依次执行其所包含的所有已命名的子属性(sub-properties) (也就是 目标) 。除了默认的属性和方法外,还可以通过this对象访问复合任务独有的属性。

阅读剩余部分

相关阅读 >>

Grunt 深入任务内幕

Grunt 常见问题

Gruntfile 实例

Grunt 配置任务

Grunt 概述

Grunt.template

安装 Grunt

Grunt 退出码

Grunt.config

Grunt 快速入门

更多相关阅读请进入《Grunt》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...