
- Gulp 教程
- Gulp - 首頁
- Gulp - 概述
- Gulp - 安裝
- Gulp - 基礎
- Gulp - 開發應用程式
- Gulp - 組合任務
- Gulp - 監聽
- Gulp - 即時過載
- Gulp - 最佳化 CSS 和 JavaScript
- Gulp - 最佳化圖片
- Gulp - 有用外掛
- Gulp - 清理不需要的檔案
- Gulp 有用資源
- Gulp - 快速指南
- Gulp - 有用資源
- Gulp - 討論
Gulp - 組合任務
任務使 Gulp 的配置能夠採用模組化方法。我們需要為每個依賴項建立任務,並在我們找到並安裝其他外掛時將其累加。Gulp 任務將具有以下結構:
gulp.task('task-name', function() { //do stuff here });
其中“task-name”是字串名稱,“function()”執行您的任務。“gulp.task”將該函式註冊為名稱內的任務,並指定對其他任務的依賴關係。
安裝外掛
讓我們以一個名為minify-css的外掛為例,用於合併和壓縮所有 CSS 指令碼。可以使用 npm 安裝它,如下面的命令所示:
npm install gulp-minify-css --save-dev
要使用“gulp-minify-css 外掛”,您需要安裝另一個名為“gulp-autoprefixer”的外掛,如下面的命令所示:
npm install gulp-autoprefixer --save-dev
要連線 CSS 檔案,請安裝 gulp-concat,如下面的命令所示:
npm install gulp-concat --save-dev
安裝外掛後,需要在配置檔案中編寫依賴項,如下所示:
var autoprefix = require('gulp-autoprefixer'); var minifyCSS = require('gulp-minify-css'); var concat = require('gulp-concat');
向 Gulp 檔案新增任務
我們需要為每個依賴項建立任務,並在安裝外掛時將其累加。Gulp 任務將具有以下結構:
gulp.task('styles', function() { gulp.src(['src/styles/*.css']) .pipe(concat('styles.css')) .pipe(autoprefix('last 2 versions')) .pipe(minifyCSS()) .pipe(gulp.dest('build/styles/')); });
‘concat’ 外掛連線 CSS 檔案,‘autoprefix’ 外掛指示所有瀏覽器的當前版本和先前版本。它壓縮 src 資料夾中的所有 CSS 指令碼,並透過呼叫帶有引數的 ‘dest’ 方法將其複製到 build 資料夾,該引數表示目標目錄。
要執行任務,請在專案目錄中使用以下命令:
gulp styles
類似地,我們將使用另一個名為 ‘gulp-imagemin’ 的外掛來壓縮影像檔案,可以使用以下命令安裝:
npm install gulp-imagemin --save-dev
您可以使用以下命令將依賴項新增到配置檔案中:
var imagemin = require('gulp-imagemin');
您可以為上面定義的依賴項建立任務,如下面的程式碼所示。
gulp.task('imagemin', function() { var img_src = 'src/images/**/*', img_dest = 'build/images'; gulp.src(img_src) .pipe(changed(img_dest)) .pipe(imagemin()) .pipe(gulp.dest(img_dest)); });
影像位於“src/images/**/*”中,並儲存在 img_srcobject 中。它被傳遞到 ‘imagemin’ 建構函式建立的其他函式。它壓縮 src 資料夾中的影像,並透過呼叫帶有引數的 ‘dest’ 方法將其複製到 build 資料夾,該引數表示目標目錄。
要執行任務,請在專案目錄中使用以下命令:
gulp imagemin
組合多個任務
您可以透過在配置檔案中建立預設任務來一次執行多個任務,如下面的程式碼所示:
gulp.task('default', ['imagemin', 'styles'], function() { });
Gulp 檔案已設定並準備執行。在專案目錄中執行以下命令以執行上述組合任務:
gulp
使用上述命令執行任務時,您將在命令提示符下獲得以下結果:
C:\work>gulp [16:08:51] Using gulpfile C:\work\gulpfile.js [16:08:51] Starting 'imagemin'... [16:08:51] Finished 'imagemin' after 20 ms [16:08:51] Starting 'styles'... [16:08:51] Finished 'styles' after 13 ms [16:08:51] Starting 'default'... [16:08:51] Finished 'default' after 6.13 ms [16:08:51] gulp-imagemin: Minified 0 images