在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 物聯(lián)網(wǎng)/ grunt.task
深入任務(wù)內(nèi)幕
grunt.option
退出碼
創(chuàng)建插件
grunt.file
grunt
快速入門
項(xiàng)目腳手架
使用命令行工具
Gruntfile 實(shí)例
配置任務(wù)
創(chuàng)建任務(wù)
grunt.log
安裝Grunt
grunt.util
grunt.event
常見問(wèn)題
grunt.config
grunt.task
grunt.template
grunt.fail

grunt.task

注冊(cè),運(yùn)行以及加載外部任務(wù)。

查看task lib sourcetask util lib source可以了解更多詳細(xì)信息。

The task API

當(dāng)一個(gè)任務(wù)運(yùn)行時(shí),Grunt通過(guò)任務(wù)函數(shù)內(nèi)部的this對(duì)象將任務(wù)內(nèi)部的大部分任務(wù)特定的實(shí)用屬性和方法暴露在任務(wù)外面??梢栽?a rel="nofollow" >內(nèi)置任務(wù)指南中查看它們屬性和方法列表。

許多實(shí)用的屬性和方法通過(guò)任務(wù)內(nèi)部this對(duì)象來(lái)訪問(wèn)都是有效的。

注意,任何使用?(unicode雪人)標(biāo)記的方法在任務(wù)內(nèi)部直接通過(guò)grunt對(duì)象來(lái)訪問(wèn)都是有效的?,F(xiàn)在你只需要知道就可以了??梢圆榭?a rel="nofollow" >API主頁(yè)了解更多詳細(xì)的用法信息。

創(chuàng)建任務(wù)

grunt.task.registerTask ?

這個(gè)方法用于注冊(cè)一個(gè)"別名任務(wù)"或者一個(gè)任務(wù)函數(shù)。這個(gè)方法支持下面兩種簽名方式:

別名任務(wù)

如果指定了一個(gè)任務(wù)列表,新的任務(wù)[任務(wù)列表之前的任務(wù)名]就是一個(gè)或者其他多個(gè)任務(wù)的別名。每當(dāng)這個(gè)"別名任務(wù)"運(yùn)行時(shí),每個(gè)指定在tasklist中指定任務(wù)都會(huì)按照它們所指定的順序一次運(yùn)行。tasklist參數(shù)必須是一個(gè)任務(wù)數(shù)組。

grunt.task.registerTask(taskName, taskList)

這里有一個(gè)別名任務(wù)的例子,我定義了一個(gè)"default"任務(wù),這個(gè)"default"任務(wù)包含"jshint","qunit","concat"和"uglify"這幾個(gè)不同的任務(wù),執(zhí)行Grunt(在命令行運(yùn)行grunt)而不指定任何特定的任務(wù)時(shí)這些任務(wù)列表中的任務(wù)都會(huì)按照指定的順序自動(dòng)執(zhí)行。

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

也可以給任務(wù)指定任務(wù)參數(shù)。這里有一個(gè)例子,我們定義了一個(gè)會(huì)執(zhí)行"concat"和"uglify"這兩個(gè)任務(wù)的別名任務(wù)"dist",并且它們都都帶有一個(gè)名為"dist"參數(shù):

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

任務(wù)函數(shù)

如果傳遞一個(gè)description和1taskFunction,每當(dāng)任務(wù)運(yùn)行時(shí)對(duì)應(yīng)的指定的函數(shù)都會(huì)執(zhí)行。此外, 當(dāng)運(yùn)行grunt --help時(shí),指定的描述(description參數(shù))也會(huì)顯示出來(lái)。任務(wù)特性的屬性和方法在任務(wù)內(nèi)部作為this對(duì)象的屬性使用也是有效的。任務(wù)函數(shù)可以返回一個(gè)false`來(lái)表示任務(wù)失敗。

注意grunt.task.registerMultiTask方法,可以用于定義一個(gè)特殊類型的任務(wù),也就是我們所說(shuō)的"多任務(wù)",具體的信息后面再解釋。

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

這里有一個(gè)例子,如果通過(guò)grunt foo:testing:123命令來(lái)運(yùn)行Grunt,這個(gè)任務(wù)就會(huì)輸出foo, testing 123。如果運(yùn)行這個(gè)任務(wù)時(shí)不傳遞參數(shù),如grunt foo,這個(gè)任務(wù)就會(huì)輸出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);
      }
});

可以查看創(chuàng)建任務(wù)文檔中更多的任務(wù)和別名任務(wù)的例子。

這個(gè)方法也可作為grunt.registerTask來(lái)使用。

grunt.task.registerMultiTask ?

注冊(cè)一個(gè)"多任務(wù)"。一個(gè)多任務(wù)就是一個(gè)會(huì)隱式的遍歷其命名子屬性的任務(wù)(AKA目標(biāo)),在沒(méi)有指定目標(biāo)的情況下。除了默認(rèn)的屬性和方法之外,使用任務(wù)內(nèi)部的this對(duì)象訪問(wèn)多任務(wù)特定的屬性也是有效的。

許多contrib(官方維護(hù)的任務(wù))任務(wù),包括jshint任務(wù)concat任務(wù)uglify任務(wù)都是多任務(wù)形式的。

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

基于一個(gè)給定的配置,這里有一個(gè)多任務(wù)例子,當(dāng)通過(guò)grunt log:foo命令運(yùn)行Grunt時(shí)輸出foo: 1,23,或者通過(guò)grunt log:bar命令運(yùn)行Grunt時(shí)輸出bar: hello world。然而如果通過(guò)grunt log命令運(yùn)行Grunt時(shí),它會(huì)輸出foo: 1,2,3,然后是bar: hello world,最后是baz: false

grunt.initConfig({
    log: {
        foo: [1, 2, 3],
        bar: 'hello world',
        baz: false
    }
});

grunt.task.registerMultiTask('log', 'Log stuff.', function() {
    grunt.log.writeln(this.target + ': ' + this.data);
});

查看創(chuàng)建任務(wù)文檔可以了解更多多任務(wù)的例子。

這個(gè)方法也可作為grunt.registerMultiTask來(lái)使用。

grunt.task.renameTask ?

這個(gè)方法用于重命名一個(gè)任務(wù)。如果你想覆蓋任務(wù)的默認(rèn)行為,那么對(duì)你來(lái)說(shuō)這個(gè)方法可能是有用的,同時(shí)它還會(huì)保留舊的名稱。

注意,如果一個(gè)任務(wù)被重命名了,this.namethis.nameArgs屬性也會(huì)作出相應(yīng)的改變。

grunt.task.renameTask(oldname, newname)

這個(gè)方法也可作為grunt.renameTask來(lái)使用。

加載外部定義的任務(wù)

對(duì)于大多數(shù)的項(xiàng)目而言,任務(wù)都會(huì)定義項(xiàng)目的在Gruntfile文件中。對(duì)于大型項(xiàng)目,或者任務(wù)之間需要跨項(xiàng)目共享的情況下,可以從一個(gè)或多個(gè)外部目錄中載入任務(wù)或者從使用Npm安裝好的Grunt插件中載入。

grunt.task.loadTasks ?

從指定的目錄載入任務(wù)相關(guān)的文件,目錄必須相對(duì)于Gruntfile所在目錄。這個(gè)方法可以用于從一個(gè)本地的Grunt插件載入任務(wù)相關(guān)文件,通過(guò)指定路徑為插件的"任務(wù)"子目錄的方式就可以做到(即指定文件為插件子目錄中任務(wù)相關(guān)的文件)。

grunt.task.loadTasks(tasksPath)

這個(gè)方法也可作為grunt.loadTasks來(lái)使用。

grunt.task.loadNpmTasks ?

從指定的Grunt插件中加載任務(wù)。這個(gè)插件必須通過(guò)npm在本地安裝好了,并且必須是相對(duì)于Gruntfile所在目錄的。Grunt插件可以通過(guò)使用grunt-init Grunt插件模板來(lái)創(chuàng)建:grunt.init:gruntplugin

grunt.task.loadNpmTasks(pluginName)

這個(gè)方法可作為grunt.loadNpmTasks來(lái)使用。

隊(duì)列任務(wù)

Grunt會(huì)自動(dòng)排列和運(yùn)行所有在命令行中指定的任務(wù),也有個(gè)別任務(wù)可以向隊(duì)列中插入需要額外執(zhí)行的任務(wù)。

grunt.task.run

排入隊(duì)列里的一個(gè)或多個(gè)任務(wù)。每個(gè)指定在takList中的任務(wù)都會(huì)在當(dāng)前任務(wù)執(zhí)行完成之后立即執(zhí)行,并且是按照它們所指定的順序來(lái)執(zhí)行。任務(wù)列表參數(shù)可以是一個(gè)任務(wù)數(shù)組或者也可以是單個(gè)的任務(wù)。

grunt.task.run(taskList)

grunt.task.clearQueue

徹底清空任務(wù)隊(duì)列。除非額外的任務(wù)排入隊(duì)列中,否則就不會(huì)執(zhí)行其他任務(wù)了。

grunt.task.clearQueue()

grunt.task.normalizeMultiTaskFiles

標(biāo)準(zhǔn)化一個(gè)任務(wù)目標(biāo)配置對(duì)象為一個(gè)src-dest文件映射數(shù)組。通常這個(gè)方法通過(guò)this.files/grunt.task.current.files屬性在多任務(wù)系統(tǒng)內(nèi)部使用。

grunt.task.normalizeMultiTaskFiles(data [, targetname])