雖然逐漸沒落,但還是有不錯用的時機。
簡述
先安裝 gulp 需要的套件:
安裝完後執行 gulp --version
或 npx gulp --version
確認有版本資訊就 OK 了。
基本結構
1 2 3 4 5 6 7
| function defaultTask(cb) { cb(); }
exports.default = defaultTask
|
在預設的設定下,執行 gulp
會自動去找 default 的任務名稱。所以上面就會從 default 裡面找到 defaultTask 並且執行。
當然,如果你要自行指定任務也可以這樣下:
牛刀小試-串 babel
用 gulp 的第一件事是找出你想執行的任務套件。
常見的任務通常都會有人家寫好的,真的找不到才需要自己寫 JS,所以有現成的就盡量拿來用就好。
接著參考 文件 的說明來做設定:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| const { src, dest } = require('gulp');
const babel = require('gulp-babel');
function ComplieJS() {
return src('src/*.js') .pipe(babel({ presets: ['@babel/env'] })) .pipe(dest('output/')); } exports.default = ComplieJS
|
接下來執行 gulp
,成功的話就會拿到 babel 後的 JS。
當任務越來越多時
舉例來說:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| const { src, dest, parallel, series } = require('gulp'); const babel = require('gulp-babel'); const uglify = require('gulp-uglify'); const rename = require("gulp-rename"); const sass = require('gulp-sass')(require('sass')); const cleanCSS = require('gulp-clean-css');
function complieJS () { return src('src/*.js') .pipe(babel()) .pipe(dest('js/')) .pipe(uglify()) .pipe(rename('min.js')) .pipe(dest('js/')); }
function complieCSS () { return src('src/*.scss') .pipe(sass().on('error', sass.logError)) .pipe(dest('css/')) .pipe(cleanCSS()) .pipe(rename('min.css')) .pipe(dest('css/')); }
exports.default = parallel(complieJS, complieCSS);
exports.default = series(complieJS, complieCSS);
|
這邊只是想介紹 parallel
series
的用法,如果任務之間沒有依賴性的話可以用 parallel
(平行執行),執行上會比較快。