var gulp = require('gulp'); var clean = require('gulp-clean'); var concat = require('gulp-concat'); //var jade = require('gulp-jade'); //暂时不需要 //var sass = require('gulp-sass'); //可以为sass、less、scss var util = require('gulp-util'); //输入提示,日志 var notify = require('gulp-notify'); //系统提示 var browserSync = require('browser-sync');// 浏览器异步处理 var reload = browserSync.reload; var runSequence = require('run-sequence'); //执行顺序 var uglify = require('gulp-uglify'); //专门压缩js var cleanCSS = require('gulp-clean-css'); //css压缩 var htmlmin = require('gulp-htmlmin'); //html压缩 //var assetRev = require('gulp-asset-rev'); //加版本号 var rev = require('gulp-rev'); //版本管理 var revCollector = require('gulp-rev-collector'); //版本管理 var src = { html:['src/html/*.html'], css:['src/css/*.css'], js:['src/js/*.js'] } var build = { base:'dist/', views:'dist/views/', css:'dist/css/', js:'dist/js/' } gulp.task('build:clean',function(){ return gulp.src(build.base,{read:false}) .pipe(clean({force:true})) .pipe(notify(({message:'清除---目录结构'}))) }) gulp.task('build:views',function(){ return gulp.src(src.html) .pipe(htmlmin({collapseWhitespace: true,minifyJS:true,minifyCSS:true})) //minifyJS----压缩页面中js .pipe(gulp.dest(build.base)) .pipe(browserSync.reload({stream:true})) .pipe(notify({message:'html---编译完成'})) }) gulp.task('build:css',function(){ return gulp.src(src.css) .pipe(concat('app.css')) .pipe(cleanCSS({debug: true}, function(details) { console.log(details.name + ': ' + details.stats.originalSize); console.log(details.name + ': ' + details.stats.minifiedSize); })) .pipe(gulp.dest(build.css)) .pipe(browserSync.reload({stream:true})) .pipe(notify({message:'css---编译完成'})) }) /* return gulp.src('styles/*.css') .pipe(cleanCSS({debug: true}, function(details) { console.log(details.name + ': ' + details.stats.originalSize); console.log(details.name + ': ' + details.stats.minifiedSize); })) .pipe(gulp.dest('dist')); */ gulp.task('build:js',function(){ return gulp.src(src.js) .pipe(concat('app.js')) .pipe(uglify()) .pipe(gulp.dest(build.js)) .pipe(browserSync.reload({stream:true})) .pipe(notify({message:'js编译完成'})) }) gulp.task('build:app',['build:css','build:js','build:views']) gulp.task('build',function(){ runSequence('build:clean',['build:app']) }) gulp.task('bs:sync',function(){ browserSync({ notify:false, port:3006, server:{ baseDir:build.base } }) }) gulp.task('watch',function(){ gulp.watch(src.html,['build:views']), gulp.watch(src.js,['build:js']), gulp.watch(src.css,['build:css']) }) /* 做同步到浏览器:再编译之后自动刷新浏览器 */ //--------------------------gulp执行---------------------------- gulp.task('default',function(){ //下面两种运行方式都可以 gulp.start('build','watch','bs:sync') //runSequence('build','bs:sync','watch') }) //------------------------------------------------------ gulp.task('help',function(){ console.log('build 创建') console.log('prod----- 生产') }) /*function log(msg){ util.log(util.colors.blue(msg)) } function handleError(err){ log(err.toString()); this.emit('end'); } */
package.json包
{ "name": "my-gulp", "version": "1.0.0", "description": "demo", "dependencies": { "express": "3.x", "gulp-rev-collector": "^1.2.2" }, "devDependencies": { "browser-sync": "^2.12.3", "gulp-asset-rev": "0.0.15", "gulp-clean": "^0.3.2", "gulp-clean-css": "^3.8.0", "gulp-concat": "^2.6.0", "gulp-htmlmin": "^3.0.0", "gulp-mini-css": "^0.0.3", "gulp-notify": "^3.0.0", "gulp-requirejs-optimize": "^0.3.2", "gulp-rev": "^8.0.0", "gulp-uglify": "^1.5.3", "run-sequence": "^2.1.0" }, "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "author": "chua", "license": "ISC" }