国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

使用GruntJS構建Web程序之Tasks(任務)篇

2019-11-20 14:46:24
字體:
供稿:網(wǎng)友

如何自定義Grunt任務

有時我們需要寫一些自己的grunt任務,下面是一個具體例子

一、準備

1. 新建一個目錄g1
2. 新建package.json,放入g1
3. 新建Gruntfile.js,放入g1

package.json

復制代碼 代碼如下:
 
{
    "name": "g1",
    "version": "0.1.0",
    "author": "@snandy",
    "homepage": "http://www.g1.com",
    "devDependencies": {
        "grunt": "~0.4.0"
    }
}

4. cd進入g1,npm install安裝grunt包

這整個目錄結構如下

Gruntfile.js暫時空著。

二、創(chuàng)建一個最簡單的任務

grunt.registerTask(taskName, [description,] taskFunction)

taskName 任務名稱,命令行里使用 grunt + taskName
description 任務的描述
taskFunction 任務的實現(xiàn)

Gruntfile.js里填入一下代碼

復制代碼 代碼如下:
 
module.exports = function(grunt) {
    grunt.registerTask('mytask', '一個最簡單的任務演示,根據(jù)參數(shù)打印不同的輸出.', function(arg1, arg2) {
        if (arguments.length === 0) {
            grunt.log.writeln('任務' + this.name + ", 沒有傳參數(shù)");
        } else if (arguments.length === 1) {
            grunt.log.writeln('任務' + this.name + ", 有一個參數(shù)是" + arg1);
        } else {
            grunt.log.writeln('任務' + this.name + ", 有兩個參數(shù)分別是" + arg1 + ", " + arg2);
        }
    });
};

注冊了一個任務“mytask”,實現(xiàn)一個最簡單的根據(jù)所傳參數(shù)不同實現(xiàn)不同的打印輸出,看運行結果我們需要進入命令行。

進入到g1目錄,輸入 grunt mytask

再輸入 grunt mytask:snandy


任務名后面加一個冒號就可以傳參了

再輸入 grunt mytask:snandy:backus


冒號間隔可以傳多個參數(shù)

三、一次創(chuàng)建多個任務

grunt.registerMultiTask(taskName, [description,] taskFunction)

可以看到參數(shù)是一樣的,方法名不同。但使用方式卻不太同,需要先初始化config,Gruntfile.js如下

復制代碼 代碼如下:
 
module.exports = function(grunt) {
    grunt.initConfig({
        log: {
            t1: [1, 2, 3],
            t2: 'hello world',
            t3: false
        }
    });

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

進入g1目錄,分別測試下

輸入 grunt,會依次執(zhí)行三個子任務t1,t2,t3

分別輸入 grunt log:t1, grunt log:t2, grunt log:t3


四、任務間通訊

在一個任務內(nèi)部可以調(diào)用另外一個任務,如下

復制代碼 代碼如下:
 
module.exports = function(grunt) {

    grunt.registerTask('mytask', '一個最簡單的任務演示,根據(jù)參數(shù)打印不同的輸出.', function(arg1, arg2) {
        if (arguments.length === 0) {
            grunt.log.writeln('任務' + this.name + ", 沒有傳參數(shù)");
        } else if (arguments.length === 1) {
            grunt.log.writeln('任務' + this.name + ", 有一個參數(shù)是" + arg1);
        } else {
            grunt.log.writeln('任務' + this.name + ", 有兩個參數(shù)分別是" + arg1 + ", " + arg2);
        }
    });

    grunt.registerTask('default', '默認的任務', function() {
        // 調(diào)用mytask
        grunt.task.run('mytask:param1:param2')
    })
};

進入命令行,輸入grunt

調(diào)用多個任務,以逗號分隔傳給run方法即可,或者以數(shù)組形式

復制代碼 代碼如下:

grunt.registerTask('default', '默認的任務', function() {
    grunt.task.run('mytask1', 'mytask2')
    // 或者
    grunt.task.run(['mytask1', 'mytask2'])  
})

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 吉木乃县| 武强县| 新龙县| 大同市| 苍山县| 龙江县| 吉林省| 乌鲁木齐县| 米脂县| 中方县| 北海市| 财经| 尚志市| 武义县| 栾城县| 沿河| 贵港市| 交城县| 砚山县| 嘉定区| 秀山| 托里县| 山东| 莲花县| 清苑县| 永登县| 闻喜县| 安阳市| 红河县| 永兴县| 乐至县| 从江县| 安塞县| 都安| 秦安县| 西华县| 彰武县| 隆昌县| 新营市| 西乌珠穆沁旗| 南昌市|