前端開發過程當中使用自動化構建工具大大提升了咱們的工做效率。gulp就是其中一款十分優異的自動化構建工具,具備清晰的API、豐富的插件。剛接觸前端開發時我就享受了gulp帶來的便利。javascript
之前的頁面開發主要工做就是編寫html、css、js文件,後來less、es6和各類前端框架的出現大大減小開發代碼量,要使用它們就必須先編譯,從而逐漸分化出開發流程:css
自動化構建工具就是能讓咱們專心寫業務代碼,其餘的事由工具自動完成。html
gulp中文網前端
yarn add gulp gulp-load-plugins ejs minimist --dev
複製代碼
gulp的任務實際上就是執行一系列操做,這些操做放在一個函數裏,以下:vue
gulp.task('taskname', function() {
// do somethings
});
複製代碼
利用node命令能夠執行node.js程序,但沒法清楚表達程序的意義。而經過gulp任務的概念能夠從邏輯上更好地管理node.js程序。作法是gulp引用封裝好的js模塊,再定義gulp task調用模塊裏的方法。java
利用這種思路能夠實現一個自動建立項目目錄和根據模板生成新頁面的腳手架。node
yarn add gulp-htmlmin gulp-html-replace gulp-rev gulp-rev-collector --dev
複製代碼
yarn add gulp-less gulp-autoprefixer gulp-clean-css gulp-concat-css --dev
複製代碼
yarn add gulp-babel babel-core babel-preset-es2015 gulp-uglify gulp-concat --dev
複製代碼
yarn add browser-sync --dev
複製代碼
使用 gulp-imagemin壓縮圖片,效果不理想可以使用tinyjpgwebpack
使用gulp-rename對文件重命名再輸出。git
使用gulp-delete-file刪除文件es6
使用gulp-clean刪除文件夾
使用gulp-ssh上傳文件到服務器(不多應用)
接觸過gulp 和 webpack 以後會感受到到二者有不少方面的不一樣:
在實際開發中用到webpack的機會愈來愈大,緣由是響應式的前端框架語言(React,Vue,Angular)已經被普遍使用了,這些框架推薦的腳手架工具默認選擇了webpack來更好地編譯使用到的技術 (.jsx,.vue),不管是移動端應用仍是中後臺管理系統頁面開發都有了成熟的實踐和各類開源庫支持。
gulp 的使用場景剩下的就是傳統的JS/JQuery開發,這種開發方式沒有特殊的文件須要編譯(.jsx,.vue),能夠專一於開發流程設計相應的gulp任務來提升開發的效率。前端運營頁面開發就是場景之一,功能簡單、迭代快速、DOM操做複雜,使用gulp成爲更好的選擇。還有一個場景就是小程序開發,在開發者工具上不能知足咱們開發的技術需求,複雜的小程序開發能夠用gulp補全流程任務,如 編譯less、加md5碼、替換資源路徑等。
詳見倉庫