自動化構建工具 Grunt
我們在開發過程中經常需要構建(Build),通常構建是一種重複性的工作,例如:編譯 TypeScript 成 ES5、編譯 SASS 成 CSS、合併指令碼樣式、壓縮指令碼和樣式、改變檔案結構、給檔案重新命名等等,這一系列的操作如果專案結構固定後基本是一成不變的操作;它好像是把各種食材(程式碼)倒入到攪拌機,最終經過攪拌機的攪拌成了最終的果汁(部署的程式),如果某種果汁的食譜定型了,攪拌的過程也會固定,這樣只需要設定好相應的步驟就可以完成最終的產物。
當然這種重複性的工作我們都用這種流程化的工具來完成,現在有很多的自動化構建的工具 Grunt、Gulp 等等,這裡主要講的是 Grunt。
什麼是 Grunt
Grunt 是前端世界的構建工具,它依託於 Node.js 的 npm 有著龐大的生態系統,你可以在眾多的外掛中像搭積木一樣完成自己的構建,如果你找不到外掛,也可以自己動手創造一個 Grunt 外掛。
安裝 Grunt
Grunt 和 Grunt 外掛是透過 npm 安裝並管理的。npm 是一個 node 包管理和分發工具,已經成為了非官方的釋出 node 模組(包)的標準。有了 npm ,可以很快的找到特定服務要使用的包,進行下載、安裝以及管理已經安裝的包。
常用命令
npm update -g
npm install -g [model-name]
n 模組
n 模組是用來快速更新 node 版本的模組
npm install -g n
n stable 更新到最近的穩定版本
n v0.10.26 更新到具體版本
nrm 模組
nrm 是一個 NPM 源管理器,允許你快速地在如下 NPM 源間切換
npm install -g nrm
nrm ls
nrm use taobao
nrm add <registry> <url> [home]
nrm del <registry>
nrm test npm
nrm test
安裝 Grunt-CLI
執行 Grunt 之前需要安裝 Grunt 命令列
[sudo ]npm install -g grunt-cli
[sudo ]npm uninstall -g grunt
安裝 Grunt 和 Grunt 外掛
安裝指定外掛並配置到 package.json 中:
[sudo ]npm install [module-name ]--save-dev
安裝 package.json 中的所有外掛:
[sudo ]npm install
初始化 Grunt 專案(Gruntfile.js)
[sudo ]npm init
使用
建立 Grunt 專案
//Gruntfile.jsmoule.exports = function(grunt) { require('load-grunt-tasks')(grunt); require('time-grunt')(grunt); grunt.initConfig({ //codes...... }); }
建立一個複製任務
//Gruntfile.jsmoule.exports = function(grunt) { //codes...... grunt.initConfig({ copy: { taskA: { src: 'a.html', dist: 'dist/a.html' }, taskB: { src: ['b.html', 'b1.html'], dist: 'dist/b.html' } } }); }
執行任務
透過命令列進入到 Gruntfile.js 檔案目錄,執行grunt TaskName
來執行對應的命令,例如執行上面的複製命令:
grunt copy:taskA
Grunt 常用外掛
Js 檔案校驗:grunt-contrib-jshint
檔案複製:grunt-contrib-copy
檔案刪除:grunt-contrib-clean
檔案合併:grunt-contrib-concat
Sass 解析:grunt-contrib-sass
Css 壓縮:grunt-contrib-cssmin
Html 壓縮:grunt-contrib-htmlmin
Js 壓縮混淆:grunt-contrib-uglify
靜態資原始檔模版:grunt-usemin
靜態資原始檔版本:grunt-rev
任務執行時間外掛:time-grunt
載入 Grunt 外掛:load-grunt-tasks
自動新增樣式字首:grunt-autoprefixer
...
整合到 Sublime
配置 Sublime 的 Build System Tools > Build System > New Build System Grunt.sublime.build
{ "cmd": ["grunt", "--no-color”, “build"], "path": "/bin:/usr/bin:/usr/local/bin", "working_dir": "${project_path:${folder}}", "selector": ["Gruntfile.js"] }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2983/viewspace-2822746/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 淺談自動化構建之grunt
- 自動化構建
- Maven 自動化構建Maven
- 構建工具:grunt、Glup、webpackWeb
- 自動化構建映象:Packer
- Maven:自動化構建工具Maven
- maven自動化構建工具Maven
- Webpack自動化構建實踐指南Web
- Jenkins自動化前端專案構建Jenkins前端
- 淺談自動化構建之gulp
- Linux 自動化構建工具 make/MakefileLinux
- 構建高效的自動化測試框架框架
- node.js gulp 自動化構建工具Node.js
- Jenkins敏捷開發 自動化構建工具Jenkins敏捷
- Element-UI 中 Make 自動化構建分析UI
- Jenkins + Gitee 實現程式碼自動化構建JenkinsGitee
- Android Gradle Groovy自動化構建進階篇AndroidGradle
- Jenkins 構建自動化 .NET Core 釋出映象Jenkins
- 前端自動化:Node 命令列前端自動構建釋出系統前端命令列
- Jenkins + GitHub 自動構建JenkinsGithub
- 玩轉SpringBoot之MyBatisplus自動化構建工具Spring BootMyBatis
- 使用gulp編寫常用自動化構建任務
- Gradle自動實現Android元件化模組構建GradleAndroid元件化
- Gradle自動化專案構建之快速掌握GroovyGradle
- 利用fastlane進行專案的自動化構建AST
- 「移動開發」iuap mobile玩轉前端自動化構建移動開發前端
- 記錄貼——Jenkins自動化構建工具安裝Jenkins
- 關於自動化構建的思維導圖解析圖解
- 教你如何搭建一個自動化構建的部落格
- Mac 環境下 Android 使用 Jenkins 構建自動化打包MacAndroidJenkins
- 自動化檔案目錄結構生成工具——filemap.jsJS
- jenkins流水線自動構建配置Jenkins
- iOS 自動化釋出 Fastlane 本地構建 IPA 並分發iOSAST
- 通過Gradle自動實現Android元件化模組構建GradleAndroid元件化
- docker-compose+ jenkins + gogs+ maven自動化構建與部署DockerJenkinsGoMaven
- 如何構建一個理想UI程式碼表達的自動化工具?UI
- Python自動化部署工具-FabricPython
- Ansible自動化運維工具運維