上個系列以 hello gulp 為例,示範了要怎麼在 gulp 中定義一個 task,並如何從 CLI 界面執行這些 task。這篇文將定義一個稍微實用一點的 taks:將檔案從 A 地複製到 B 地。
早期的網頁開發,只要開一個資料夾,在裡面放好 HTML、CSS、JS 檔案,就可以做好一個專案了。但現代的網頁開發,時常會將開發中的 HTML、CSS、JS 檔都先放在 source 資料夾中,之後透過如 gulp、webpack 等建構工具加工後,才將編譯完成的檔案放進 public 資料夾中,然後將 pubic 資料夾中的檔案上傳到網路上,讓使用者能瀏覽該網站。
本文想做一個簡單的複製工作:將 source 資料夾中的所有 .html 檔案,都複製到 public 資料夾中。簡單步驟如下:
gulp.src()
API 來取得想複製的檔案路徑gulp.dest()
API 將複製的檔案複製到該路徑import gulp from 'gulp'
export function copyHTML() {
return gulp.src('./source/**/*.html')
.pipe(gulp.dest('./public'))
}
最後再透過 CLI 指令 gulp copyHTML
來呼叫該命令
gulp copyHTML
[15:50:29] Requiring external module @babel/register
[15:50:41] Using gulpfile D:\Users\Chu\Desktop\鐵人賽:試著把切版專案升級到gulp4吧\Sweataste-gulp4.0\gulpfile.babel.js
[15:50:41] Starting 'copyHTML'...
[15:50:42] Finished 'copyHTML' after 324 ms
就會看到專案目錄下多了 public 資料夾,裡面有剛剛從 source 路徑底下複製過來的 HTML 檔案。
├── gulpfile.babel.js
├── package-lock.json
├── package.json
├── public
│ ├── carts.html
│ ├── checkout-1.html
│ ├── checkout-2.html
│ ├── checkout-3.html
│ ├── checkout-4.html
│ ├── index.html
│ ├── page.html
│ ├── product.html
│ ├── register.html
│ └── test.html
├── README.md
└── source
├── carts.html
├── checkout-1.html
├── checkout-2.html
├── checkout-3.html
├── checkout-4.html
├── images
├── index.html
├── javascripts
├── layout.ejs
├── page.html
├── product.html
├── register.html
├── stylesheets
└── test.html
這是「第一個 task 」系列的第一篇文,談了如何從 A 地複製一個檔案到 B 地。明天將介紹 gulp 3.9.1 時期常用的 4 個 API:task、src、dest、watch。