91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Gruntfile.js怎么使用

發布時間:2021-12-18 10:26:58 來源:億速云 閱讀:137 作者:iii 欄目:開發技術

這篇文章主要講解了“Gruntfile.js怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Gruntfile.js怎么使用”吧!

一、grunt模塊簡介

grunt插件,是一種npm環境下的自動化工具。對于需要反復重復的任務,例如壓縮、編譯、單元測試、linting等,自動化工具可以減輕你的勞動,簡化你的工作。grunt模塊根據Gruntfile.js文件中的配置進行任務。如果在package.json中定義如下命令:

【相關課程推薦:JavaScript視頻教程】

"scripts": {    "build": "npm install && grunt"}

因為運行npm run build會先安裝devDependencies中定義的一些模塊,則運行npm run build這個命令相當于做如下操作:

● npm install grunt-cli -g

● npm install

● grunt

二、gruntfile.js的結構:

● "wrapper" 函數

● 項目和任務配置

● 加載 grunt 插件和任務

● 自定義任務

三、"wrapper" 函數

每一份 Gruntfile.js(和grunt插件)都遵循同樣的格式,你所書寫的Grunt代碼必須放在此函數內:

module.exports = function(grunt){         //do grunt-related things in here}

四、項目和任務配置

大部分的Grunt任務都依賴某些配置數據,我們通過grunt.initConfig 方法來配置Grunt任務的參數。grunt.initConfig 方法的參數是一個JSON對象,你可以在這個配置對象中存儲任意的數據。此外,由于這本身就是JavaScript,你還可以在這里使用任意的有效的JS代碼。甚至你可以用<% %>模板字符串來引用已經配置過的屬性,例如:

// 項目和任務配置grunt.initConfig({  pkg: grunt.file.readJSON('package.json'), //獲取 package.json 中的元數據(js代碼)  proj:{    name:'hello',    description:'a hello demo'  },  hello: {    options: {      name: '<%= proj.name %>'  //用<% %>模板字符串匹配hello    },    srcs: ['1.txt', '2.txt']  }});

在grunt.initConfig 方法中配置的屬性,在任務模塊中,可用grunt.config方法進行訪問,例如:

grunt.config("proj.name");

另外,grunt任務模塊會自動根據任務名來提取配置對象中和任務名對應的屬性,比如定義任務hello,則在配置對象對應的屬性"hello"中配置任務執行函數中所需用到的配置和數據。

五、加載grunt插件任務

為了減少重復勞動,我們可以加載已有的插件任務。

1.加載自己私有的grunt插件

可將自己定義的一些task腳本放在同一個目錄下,通過grunt.loadTasks方法從指定目錄加載該目錄下所有的grunt任務腳本。

2.加載在npm中發布的grunt插件

像 grunt-contrib-copy和grunt-contrib-uglify這些常用的任務都已經以grunt插件的形式被開發出來了,且被發布在npm公開庫中,只要在 package.json 文件中將需要使用的插件列在dependency中,并通過npm install安裝之后,就可以直接加載該任務。

// 加載能夠提供"copy"任務的插件。grunt.loadNpmTasks('grunt-contrib-copy');

3.直接加載所有以"grunt-"打頭的插件

npm上有個load-grunt-tasks插件可以用來加載dependency列表中所有以"grunt-"打頭的插件。將需要使用的"grunt-"打頭的插件列在dependency中,然后在Gruntfile.js中進行調用。

//Load grunt tasks from NPM packagesload-grunt-tasks

六、自定義任務

1.直接定義任務的行為

grunt.registerTask('hello', 'Show some msg', function() {  console.log(this.options().name); //輸出hello});

2.定義為任務列表

可以將一個任務定義為一系列任務的組合,這一系列任務將按照順序執行。

grunt.registerTask('dothings', 'copy and Show some msg', ['copy','hello']);

3.定義默認任務

通過定義 default 任務,可以讓Grunt默認執行一個或多個任務。執行 grunt 命令時如果不指定一個任務的話,將會執行默認任務。如進行下面定義的話執行grunt 相當于執行grunt hello。

grunt.registerTask('default', ['hello']);

4.定義復合任務

registerMultiTask方法可以定義一個復合任務,復合任務將會對grunt.initConfig 方法中配置的相應屬性中除了options外定義的屬性依次作為target:data對進行處理。

module.exports = function(grunt) {    grunt.initConfig({        Log: {            options: {                sep: ';'            },            srcs: ['1.txt', '2.txt'],            dests: ['d1.txt', 'd2.txt']        }    });    grunt.registerMultiTask("Log", function() {        var options = this.options({ sep: '&' });        console.log(this.target);         console.log(this.data.join(options.sep));    });};

執行grunt Log將會輸出:

Running "Log:srcs" (Log) tasksrcs1.txt;2.txtRunning "Log:dests" (Log) taskdestsd1.txt;d2.txt

定義任務行為Tips

1.任務內部可以執行其他的任務。

grunt.registerTask('mytask', function() {  grunt.task.run('task1', 'task2');  // Or:  grunt.task.run(['task1', 'task2']);});

2.定義異步任務

grunt.registerTask('mytask', function() {  var done = this.async();  //do something  done();});

3.當任務失敗時,所有后續任務都將終止

在任務中,當執行失敗,可以return false來表明當前任務執行失敗,一般,多個任務按順序執行,如果有任務失敗時,所有后續任務都將終止。可以通過在命令行后加上--force來使有任務失敗時,后續任務能繼續進行。

4.任務中檢查前置任務狀態

有些任務可以依賴于其他任務的成功執行。通過grunt.task.requires方法來檢查其前置任務是否已經執行,并且沒有失敗。

5.任務中檢查配置屬性

可以用方法grunt.task.requiresConfig指定一個或者多個字符串或者數組的配置屬性為必需的。如果一個或多個必需的配置屬性缺失,就通知系統當前任務失敗。

感謝各位的閱讀,以上就是“Gruntfile.js怎么使用”的內容了,經過本文的學習后,相信大家對Gruntfile.js怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴中市| 平乐县| 丰台区| 武川县| 桦川县| 和顺县| 独山县| 抚州市| 荃湾区| 鄄城县| 玛纳斯县| 华安县| 甘孜县| 江都市| 芦山县| 金华市| 古田县| 许昌县| 开封市| 平顶山市| 随州市| 巧家县| 桂东县| 兴化市| 呼玛县| 基隆市| 云安县| 治县。| 五大连池市| 正安县| 上犹县| 皋兰县| 夏河县| 东乡县| 巴楚县| 苍南县| 曲靖市| 依兰县| 蕉岭县| 和田县| 襄垣县|