Gulp 學習筆記

2020-04-27

前端技術進展快速名不虛傳,真有感的就是看 Web Developer RoadMap,學習路徑上的每個節點,如同枝葉日漸繁茂,同時許多技術由還來不及學習就由醒目的亮黃色轉為枯灰,最終凋零消失於 RoadMap上。

學習 Gulp 的起因是 Webpack,在完成 Udemy 的課程後,開始實踐打造自己的 Starter Template,試圖讓日後的工作流程能夠有個快速的架手腳工具,並享受 NPM moduels, Sass, Babel, ES6, Html Template, Minify Files 等便捷的前端開發功能。

此時的自己也剛上完 Vue.js 的課程,當時稍微研究過 Webpack + NPM Scripts 直覺就是兩者是渾然天成的組合,不需要另外費神去研究其他的 Task Runner,諸如 Grunt 及 Gulp。但就在學習過程中,一次偶然下載的 Template 專案是以 Gulp 作為 Task Runner,嘗試閱讀之下,竟然發現 Gulp語法十分平易近人。

短時間內滿滿的前端工具衝擊著自己,讓自己應接不暇,而在冷靜思考自己真正的需要其實不是規模化專案開發及 SPA 的前端框架,反而只是 Gulp 與其 Plugins 就可以滿足我工作及日常所需,於是暫且拋下 Webpack, Vue.js,開始認真學習 Gulp,也在學習 Gulp 的過程中順道學習了 Hexo (前端的學習真的很容易發散,需要不斷的重新聚焦),以下就是學習過程的筆記。


學習過程中發現,學習 Gulp 最舒適的方式就是先知道自己到底為什麼需要這個工具?先羅列出 Gulp 可以幫自己解決的痛點,接著主動搜尋是否存在對應的 Gulp-Plugins,找到之後再將 Gulp Task 加入到自己的 gulpfile.js ,接著驗證功能是否符合預期。

需要的功能 對應的 Gulp-Plugin 驗證
清空資料夾 del ✔️
壓縮 CSS gulp-clean-css ✔️
壓縮 JS gulp-uglify ✔️
重新命名 .min gulp-rename ✔️
支援 SCSS gulp-sass ✔️
轉譯 ES6 gulp-babel ✔️
使用 Pug gulp-pug ✔️
Html 載入路徑 gulp-html-replace ✔️
選取 vendor css/js dest ✔️
加上版本號 .js?v=1 gulp-version-number ✔️
開發模式/生產模式 minimist / gulp-if ✔️
Html Template ejs ✔️
支援 PostCSS Autoprefix gulp-postcss
壓縮圖片 gulp-imagemin
Html Extends handlebars

參考資料

試著把切版專案升級到 gulp4.0 吧
https://awdr74100.github.io/categories/Gulp/
https://hsiangfeng.github.io/categories/gulp/