為訂購檔案建立映像 JS 和 CSS(SASS) 規則
安裝 Gulp 和他的任務
$ npm install gulp --save-dev
$ npm install gulp-sass --save-dev
$ npm install gulp-uglify --save-dev
$ npm install gulp-imagemin --save-dev
確定資料夾結構
在此結構中,我們將使用 app 資料夾進行開發,而 dist 資料夾用於包含生產站點的優化檔案。
|-app
|-css/
|-images/
|-index.html
|-js/
|-scss/
|- dist/
|- gulpfile.js
|- node_modules/
|- package.json
Gulp 預處理
// Requires the gulp-sass plugin
var gulp = require('gulp');
sass = require('gulp-sass');
uglify = require('gulp-uglify');
imagemin = require('gulp-imagemin');
Gulp 任務
gulp.task('sass', function(){
return gulp.src('app/scss/**/*.scss') //selection all files in this derectory
.pipe(sass()) // Using gulp-sass
.pipe(gulp.dest('dist'))
});
gulp.task('gulp-uglify', function(){
return gulp.src('app/js/*.js')
// Minifies only if it's a JavaScript file
.pipe(uglify())
.pipe(gulp.dest('dist'))
});
gulp.task('images', function(){
return gulp.src('app/images/**/*.+(png|jpg|gif|svg)')
.pipe(imagemin())
.pipe(gulp.dest('dist/images'))
});
Gulp Watch
gulp.task('watch', function(){
gulp.watch('app/js/**/*.js', ['gulp-uglify']);
gulp.watch('app/scss/**/*.scss', ['sass']);
gulp.watch('app/images/**/*.*', ['images']);
// Other watchers
});
gulp.task('build', [`sass`, `gulp-uglify`, `images`], function (){
console.log('Building files');
});
gulp.task('default', function() {});