Grunt 的簡單使用

2022-06-20 19:06:10 字數 3648 閱讀 3277

我們建立乙個檔案,然後初始化 package.json,新增 grunt 模組

yarn init -y

yarn add grunt -d

然後在根目錄建立乙個 gruntfile.js 的檔案, gruntfile.js 就是 grunt 的入口檔案

module.exports = grunt => )

}

然後我們在控制台執行以下命令

yarn grunt foo // 輸出 hello grunt
這樣 grunt 就會幫助我們執行 foo 任務

grunt.registertask('default', '任務描述', () => )
然後我們在控制台執行以下命令

yarn grunt // 輸出 default task
如果我們將 registertask 第二個引數設定為陣列,它就會執行多個任務

grunt.registertask('default', ['foo', 'bar'])
grunt.registertask('async-task', function() , 1000)

})

我們在實際開發中,如果有乙個檔案找不到了,我們就需要 grunt 將這個任務標記為失敗任務

grunt.registertask('bad', () => )
這時控制台就會報錯

如果我們有多個任務,序列執行,那麼失敗的任務之後的任務都不會被執行

grunt.registertask('bad', () => )

grunt.registertask('foo', () => )

grunt.registertask('bar', () => )

grunt.registertask('default', ['foo', 'bad', 'bar'])

這時控制台就會報錯, bad 任務之後的任務都不會被執行

除了 registertask 處理任務的方法,grunt 還有乙個 initconfig 初始化配置選項的 api

grunt.initconfig(

})grunt.registertask('foo', () => )

在控制台執行下面的命令

yarn grunt foo // 輸出 123
多目標模式,可以讓我們根據配置形成多個子任務, 我們可以借助 initconfig 去初始化任務

grunt.initconfig(,

css:

},js: '2'

}})// 多目標模式,可以讓我們根據配置形成多個子任務

grunt.registermultitask('build', function() , data: $`)

})

值得注意的是,當我們在子任務中配置 option 會覆蓋掉父任務中的 option

grunt 的常見的外掛程式使用

grunt 提供的強大的外掛程式,這些外掛程式內部都封裝了一些通用的任務,下面我們來看看怎麼使用它們

yarn add grunt-contrib-clean
然我我們在 gruntfile.js 中配置一下

grunt.initconfig(

})grunt.loadnpmtasks('grunt-contrib-clean')

然我們執行下面的命令

yarn grunt clean
yarn add grunt-sass sass -d
然後我們在 gruntfile.js 檔案中做一些配置

const sass = require('sass')

module.exports = grunt => ,

main: }},

})grunt.loadnpmtasks('grunt-sass')

}

然後執行下面的命令

yarn grunt sass
yarn grunt grunt-babel @babel/core @babel/preset-env -d
隨著我們使用更多的外掛程式,我們會不斷地使用 loadnpmtasks,這顯然會比較麻煩,所以我們需要使用乙個 load-grunt-tasks的外掛程式,它會幫助我們自動載入任務

yarn add load-grunt-tasks -d
我們再來整理一下我們的 gruntfile.js 中的配置

const sass = require('sass')

const loadgrunttasks = require('load-grunt-tasks')

module.exports = grunt => ,

main: }},

babel: ,

main: }},

})// grunt.loadnpmtasks('grunt-sass')

loadgrunttasks(grunt) // 自動載入所有的 grunt 外掛程式的中的任務

}

然我們再來執行一下

yarn grunt babel
yarn add grunt-contrib-watch -d
然我們再來對 gruntfile.js 做出一些配置

const sass = require('sass')

const loadgrunttasks = require('load-grunt-tasks')

module.exports = grunt => ,

main: }},

babel: ,

main: }},

watch: ,

css: }})

// grunt.loadnpmtasks('grunt-sass')

loadgrunttasks(grunt) // 自動載入所有的 grunt 外掛程式的中的任務

grunt.registertask('default', ['sass', 'babel', 'watch'])

}

然後我們執行下面的命令

yarn grunt
然後我們每次再修改檔案後,就是會實時更新了

上面就是 grunt 的基本使用,其實我們對於 grunt 只需要了解就可以了,不需要在這上面消耗太多的精力,因為現在基本沒有使用 grunt 的專案了,除非一些"史前"的專案。當然我們如果你了解 grunt 的話,對於你學習 gulp 是有一定幫助的,因為它們之間的語法會有一些相似的地方。

前端自動化 grunt的簡單使用

現在前端自動化已經是家常便飯,各種工具也是層出不窮,grunt gulp webpack是應用最廣的三種工具,雖然grunt看似已垂垂老矣,但是以前寫的很多專案一直用的就是grunt,溫故方能知新,這裡把grunt的基本操作再記錄一下。開始使用grunt很簡單,在專案的根目錄中新增兩份檔案 pack...

生成環境中grunt的壓縮使用

1.package.json dependencies devdependencies keywords kxll mweb author cheonghu license isc 2.gruntfile.js module.exports function grunt src pkg.mweb t...

Grunt環境搭建和簡單壓縮嘗試

當然了,得先安裝nodejs的npm管理 node v 顯示node版本 npm v 顯示npm包管理工具 安裝grunt構建工具,先全域性安裝後進入專案安裝grunt npm install g grunt cli npm install g grunt 3 問題 進入專案目錄檢視grunt的安裝...