Gulp 簡單的開發環境搭建

//獲取gulp
//require()是 node (CommonJS)中獲取模塊的語法

var gulp=require('gulp');

//獲取gulp-concat模塊(用於合併文件):npm install --save-dev gulp-concat
var concat=require('gulp-concat');

//獲取gulp-jshint(語法檢查):npm install jshint
var jshint=require('gulp-jshint');

//獲取gulp-uglify組件(用於壓縮JS):npm install gulp-uglify
var uglify=require('gulp-uglify');

//獲取minify-css模塊(用於壓縮CSS):npm install gulp-minify-css
var minifyCSS=require('gulp-minify-css');

//獲取gulp-imagemin模塊:npm instal gulp-imagemin
var imagemin=require('gulp-imagemin');

//獲取gulp-less 模塊:npm install gulp-less
var less=require('gulp-less');

//獲取gulp-ruby-sass模塊:npm install gulp-ruby-sass@1.0.1
/*var sass=require('gulp-ruby-sass');*/

//獲取gulp-sass模塊:不依賴ruby環境,依賴包:node-sass
var sass=require('gulp-sass');

//獲取gulp-minify-html模塊:npm i gulp-minify-html
var minifyHtml=require('gulp-minify-html');

//獲取gulp-autoprefixer模塊:npm i gulp-autoprefixer
var autoprefixer = require('gulp-autoprefixer');

//獲取gulp-watch-path模塊:npm install gulp-watch-path
//var watchPath=require('gulp-watch-path');

//獲取gulp-rename(文件重命名):npm install gulp-rename
var rename=require('gulp-rename');




//建立任務

// 語法檢查
gulp.task('jshint', function () {
    return gulp.src('js/*.js')
        .pipe(jshint())
        .pipe(jshint.reporter('default'));
});


//壓縮js文件
//在命令行中使用gulp script啓動此任務

gulp.task('script',function(){
	//1.找到文件
	gulp.src('js/*.js')
	//2.壓縮文件
	.pipe(uglify())
    //3.壓縮後另存文件
    .pipe(gulp.dest('dist/js'))
});

//建立壓縮css任務

gulp.task('css',function(){
	//1.找到文件
	gulp.src('css/*.css')
	//2.壓縮文件
	.pipe(minifyCSS())
	//3.另存爲壓縮文件
	.pipe(gulp.dest('dist/css'))
    //4.壓縮後的文件重命名爲:xx.min.css
	.pipe(rename({suffix:'.min'}))
	.pipe(autoprefixer())
	.pipe(minifyCSS())
	.pipe(gulp.dest('dist/css'))
});

//建立壓縮圖片任務
//在命令行輸入 gulp images 啓動此任務

gulp.task('images',function(){
	//1.找到圖片
	gulp.src('images/*.*')
	//2.壓縮圖片
	.pipe(imagemin({
		progressive:true
	}))
	//3.另存壓縮後圖片
	.pipe(gulp.dest('dist/images'))
});

//壓縮HTML文件
//在命令行輸入 gulp minifyHTML 啓動此任務

gulp.task('html', function () {
    gulp.src('html/*.html') // 要壓縮的html文件
    .pipe(minifyHtml()) //壓縮
    .pipe(gulp.dest('dist/html'));
});


//編譯less
//在命令行輸入 gulp less 啓動此任務

gulp.task('less',function(){
	//1.找到 less 文件
	gulp.src('less/**.less')
	//2.編譯爲css
	.pipe(less())
	//3.另存文件
	.pipe(gulp.dest('dist/css'))
	//4.重命名,並壓縮
	.pipe(rename({suffix:'.min'}))
	.pipe(minifyCSS())
	.pipe(gulp.dest('dist/min/css'))
});

//編譯sass
//在命令行輸入 gulp sass啓動此任務

gulp.task('sass', function() {
     gulp.src('sass/*.scss')
     .pipe(sass())
     .pipe(gulp.dest('dist/css'))
     .pipe(rename({suffix:'.min'}))
	 .pipe(minifyCSS())
	 .pipe(gulp.dest('dist/min/css'))
});

//文件合併
gulp.task('concat', function () {
    gulp.src('js/*.js')  //要合併的文件
    .pipe(concat('all.js'))  // 合併匹配到的js文件並命名爲 "all.js"
    .pipe(gulp.dest('dist/js'))
    .pipe(rename({suffix:'.min'}))
    .pipe(uglify())
    .pipe(gulp.dest('dist/js'))
});


//autoprefixer,自動補全css3前綴

gulp.task('autoprefixer',function(){
	return gulp.src('css/*.css')
	.pipe(autoprefixer({
		browsers:['last 2 version'],
		cascade:false
	}))
	.pipe(gulp.dest('dist/css'))
})


//自動監聽:當文件修改時候,自動執行script任務

//在命令行使用gulp watch 啓動如下任務
gulp.task('watch',function(){
	gulp.watch('js/*.js',['jshint','script','concat']);
	gulp.watch('sass/*.scss',['sass','css','autoprefixer']);
	gulp.watch('css/*.css',['css','autoprefixer']);
	gulp.watch('html/*.html',['html']);
});


//使用gulp.task('default') 定義默認任務,即:輸入 gulp script 指令時默認啓動該任務
//在命令行使用 gulp 啓動 script 任務 和 auto 任務
//中止自動任務:Ctrl + C
//多任務執行 gulp +回車

gulp.task('default',['jshint','autoprefixer','script','css','html','images','sass','less','watch']);
相關文章
相關標籤/搜索