const gulp = require('gulp');
const cssmin = require('gulp-clean-css');
const htmlmin = require('gulp-htmlmin');
const changed = require('gulp-changed');
const uglify = require('gulp-uglify');
const clean = require('gulp-clean');
const babel = require('gulp-babel');
const assetRev = require('gulp-asset-rev');
gulp.task('htmlminTask', function () {
var options = {
removeComments: true,
collapseWhitespace: true,
collapseBooleanAttributes: true,
removeEmptyAttributes: true,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true,
minifyJS: true,
minifyCSS: true
};
gulp.src('src/index.html')
.pipe(changed('dist'))
.pipe(assetRev())
.pipe(htmlmin(options))
.pipe(gulp.dest('dist/'))
gulp.src('src/html/*.html')
.pipe(changed('dist'))
.pipe(assetRev())
.pipe(htmlmin(options))
.pipe(gulp.dest('dist/html'))
})
gulp.task('cssminTask', function() {
var option = {
advanced: true,
compatibility: 'ie7',
keepBreaks: false,
keepSpecialComments: '*'
}
gulp.src('src/style/*.css')
.pipe(assetRev())
.pipe(cssmin(option))
.pipe(gulp.dest('dist/style/'))
})
gulp.task('uglifyTask', function () {
gulp.src(['src/js/*.js'])
.pipe(assetRev())
.pipe(changed('dist/js'))
.pipe(babel({
presets: ['es2015']
}))
.pipe(gulp.dest('dist/js/'));
});
gulp.task('copyTask', function () {
gulp.src('src/favicon.ico')
.pipe(gulp.dest('dist/'))
gulp.src('src/img/*')
.pipe(gulp.dest('dist/img/'))
gulp.src('src/img/about_us/*')
.pipe(gulp.dest('dist/img/about_us'))
gulp.src('src/img/active-img/*')
.pipe(gulp.dest('dist/img/active-img'))
gulp.src('src/img/footer/*')
.pipe(gulp.dest('dist/img/footer'))
gulp.src('src/img/index/*')
.pipe(gulp.dest('dist/img/index'))
gulp.src('src/img/zhaopin_img/*')
.pipe(gulp.dest('dist/img/zhaopin_img'))
gulp.src('src/fonts/*')
.pipe(gulp.dest('dist/fonts'))
})
gulp.task('cleanTask', function() {
var stream = gulp.src( 'dist', {read: false} )
.pipe(clean())
return stream
})
gulp.task('dev',['cleanTask','htmlminTask', 'copyTask', 'cssminTask','uglifyTask'])
package.json
{
"name": "demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"devDependencies": {
"babel-core": "^6.26.3",
"babel-preset-es2015": "^6.24.1",
"gulp": "^3.9.1",
"gulp-asset-rev": "0.0.15",
"gulp-babel": "^7.0.1",
"gulp-changed": "^3.1.0",
"gulp-clean": "^0.3.2",
"gulp-clean-css": "^3.8.0",
"gulp-copy": "^1.0.1",
"gulp-htmlmin": "^3.0.0",
"gulp-uglify": "^3.0.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}