var gulp = require("gulp"),//全局安装gulp(必须,没有它别的都废啦)
concat = require("gulp-concat"),//合并js文件
uglify = require("gulp-uglify"),//压缩js文件
rename = require('gulp-rename'),//重命名文件流文件
cssmin = require('gulp-minify-css'),//压缩css文件
htmlmin = require('gulp-htmlmin'),//压缩html文件
clean = require("gulp-clean"),//删除文件
copy = require("gulp-copy");//复制文件
zip = require("gulp-zip");//压缩打包成zip文件
var paths = ["jquery/jquery.js", "jquery/jquery.fullscreen.js", "js/FullScreen.js", "js/SecondManager.js", "js/Label.js", "js/Differences.js", "js/Scene.js", "js/StartScene.js", "js/GameScene.js", "js/TimeoutScene.js", "js/CompleteScene.js", "js/Audio.js", "js/Game.js", "js/GameSceneDatas.js", "js/Main.js"];
gulp.task("test", function () {
console.log("concat 合并js文件");
console.log("uglify 压缩js文件");
console.log("cssmin 压缩css文件");
console.log("htmlmin 压缩html文件");
console.log("clean 删除文件");
console.log("copy 复制文件");
console.log("zip 压缩打包成zip文件");
console.log("watch 监控文件修改");
})
gulp.task("concat", function () {
return gulp.src(paths)
.pipe(concat("index.js"))
.pipe(gulp.dest("dist/"));
})
gulp.task("uglify",["concat"], function () {//执行压缩前会先执行一边合并
return gulp.src("dist/index.js")
.pipe(uglify())
.pipe(rename("index.min.js"))
.pipe(gulp.dest("dist/"));
})
gulp.task("cssmin", function () {
return gulp.src("index.css")
.pipe(cssmin())
.pipe(rename("index.min.css"))
.pipe(gulp.dest("dist/"))
})
gulp.task('htmlmin', function () {
var options = {
removeComments: true,//清除HTML注释
collapseWhitespace: true,//压缩HTML
//省略布尔属性的值 <input checked="true"/> ==> <input />
collapseBooleanAttributes: true,
//删除所有空格作属性值 <input id="" /> ==> <input />
removeEmptyAttributes: true,
//删除<script>的type="text/javascript"
removeScriptTypeAttributes: true,
//删除<style>和<link>的type="text/css"
removeStyleLinkTypeAttributes: true,
minifyJS: true,//压缩页面JS
minifyCSS: true//压缩页面CSS
};
return gulp.src('index.html')
.pipe(htmlmin(options))
.pipe(rename("index.min.html"))
.pipe(gulp.dest(''));
});
gulp.task("clean",["uglify"],function () {//删除文件前会先执行压缩,确保删除文件以备压缩执行
return gulp.src("dist/index.js")
.pipe(clean());
})
gulp.task("copy", function () {
return gulp.src(["mp3/**", "images/**"])
.pipe(copy("./dist"));
})
gulp.task("zip", ["cssmin", "htmlmin","clean", "copy"], function () {
return gulp.src(["dist/**","index.min.html"])
.pipe(zip("jaja.zip"))
.pipe(gulp.dest(""))
})
gulp.task("watch", function () {
gulp.watch("js/*.js", ['concat', 'uglify'])
gulp.watch("index.css", ['cssmin'])
gulp.watch("index.html", ['htmlmin'])
})