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

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

grunt.task

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

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

The task API

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

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

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

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

grunt.task.registerTask ?

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

別名任務(wù)

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

grunt.task.registerTask(taskName, taskList)

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

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

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

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

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

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

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

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

這里有一個例子,如果通過grunt foo:testing:123命令來運行Grunt,這個任務(wù)就會輸出foo, testing 123。如果運行這個任務(wù)時不傳遞參數(shù),如grunt foo,這個任務(wù)就會輸出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ù)的例子。

這個方法也可作為grunt.registerTask來使用。

grunt.task.registerMultiTask ?

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

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

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

基于一個給定的配置,這里有一個多任務(wù)例子,當(dāng)通過grunt log:foo命令運行Grunt時輸出foo: 1,23,或者通過grunt log:bar命令運行Grunt時輸出bar: hello world。然而如果通過grunt log命令運行Grunt時,它會輸出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ù)的例子。

這個方法也可作為grunt.registerMultiTask來使用。

grunt.task.renameTask ?

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

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

grunt.task.renameTask(oldname, newname)

這個方法也可作為grunt.renameTask來使用。

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

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

grunt.task.loadTasks ?

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

grunt.task.loadTasks(tasksPath)

這個方法也可作為grunt.loadTasks來使用。

grunt.task.loadNpmTasks ?

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

grunt.task.loadNpmTasks(pluginName)

這個方法可作為grunt.loadNpmTasks來使用。

隊列任務(wù)

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

grunt.task.run

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

grunt.task.run(taskList)

grunt.task.clearQueue

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

grunt.task.clearQueue()

grunt.task.normalizeMultiTaskFiles

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

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