Gulp
gulp 的環境
npm install gulp -g gulp -v
-
- 引入套件 npm install gulp-sass --save(-dev)
//gulpfile.js
gulp.task('{name}',function(){
gulp.src('{./xxx/xxxfile}')
.pipe(/*do something*/)
.pipe(/*do something*/)
.pipe(gulp.dest('{...path}'))
gulp.watch(......)
})
接下來進行任務
gulp [任務 name]
- 有沒有加入 -g 差異在哪裡呢?
- 有加入 "-g":這是安裝全域的套件:也就是安裝在目前的電腦上,目的是啟用 "gulp" 這個指令
- 沒有加入:這是 local 套件安裝的指令:是裝在目前的專案資料夾內,目的是執行 gulp 時可以取用的套件
總結:只有 npm install gulp -g 才會使用到全域的指令 其餘 gulp 套件只會用到 "npm install --save"
Gulp 常用套件
- gulp-jade
- gulp-sass
- gulp-plumber 出錯時不會馬上停止
- gulp-postcss
- autoprefixer
- gulp-load-plugins
- gulp-babel
- babel-preset-es2015
- gulp-sourcemaps
- gulp-concat
- browser sync
- main-bower-files
- gulp-minify-css
- gulp-uglify
- minimist
- gulp-if
打包和 watch
1.打包
gulp.task('default',['jade','sass','watch']);
//gulp
2.watch
gulp.task('watch', function () {
gulp.watch('./source/scss/**/*.scss',['sass']);
gulp.watch('./source/**/*.jade',['jade']);
gulp.watch('./source/js/**/*.js', ['babel']);
});
//gulp watch
範例一.copyHTML
var gulp= require('gulp');
gulp.task('copyHTML',function(){
return gulp.src('./source/**/*.html')
.pipe(gulp.dest('./public/'))
})
gulp copyHTML
範例二 jade-blade
npm install gulp-jade --save
var jade= require('gulp-jade');
gulp.task('jade',function(){
gulp.src('./source/*.jade')
.pipe(jade({
pretty:true
}))
.pipe(gulp.dest('./public/'))
})
//gulp.src('./source/*.jade')
//建議可以修改成 gulp.src('./source/**/*.jade')
//gulp jade
範例三 Scss
npm install gulp-sass --save
var sass= require('gulp-sass');
gulp.task('sass',function(){
return gulp.src('./source/scss/**/*.scss')
.pipe(sass().on('error',sass.logError))
.pipe(gulp.dest('./public/css'))
});
//gulp sass
//目前版本的 Watch 並無法監控到 "新增” 及 “刪除” 的檔案更動
// 所以是新增的檔案下,是必須重啟 gulp 服務才能繼續監控
// 或者是使用另一個 gulp-watch 套件
// https://www.npmjs.com/package/gulp-watch
https://github.com/scniro/gulp-clean-css gulp-minify-css 作者不再維護了改而推薦使用 gulp-clean-css