gulp
// //引入的记得下载
// const gulp = require("gulp");
// const uglify = require("gulp-uglify"); //压缩js
// const htmlmin = require("gulp-htmlmin") //压缩html
// const sass = require("gulp-sass") //压缩sass
// //压缩js
// gulp.task('js', function() {
// return gulp.src('a/*.js')
// .pipe(uglify({
// }))
// .pipe(gulp.dest('b'))
// });
// //压缩html
// gulp.task('html', function() {
// return gulp.src('a/*.html')
// .pipe(htmlmin({
// collapseWhitespace: true
// }))
// .pipe(gulp.dest('b'))
// });
// //压缩sass
// gulp.task('sass', function() {
// return gulp.src('a/*.scss')
// .pipe(sass())
// .pipe(gulp.dest('b'))
// });
const { src, dest, series, parallel, watch } = require("gulp");
const htmlMinify = require("gulp-html-minify")
const sass = require("gulp-sass");
const cleanCss = require("gulp-clean-css")
const babel = require("gulp-babel");
const uglify = require("gulp-uglify");
const rename = require("gulp-rename");
const webServer = require("gulp-webserver")
function buildHtml() {
return src("src/index.html")
.pipe(htmlMinify()) //压缩html
.pipe(dest("dist"))
}
//压缩css
function buildScss() {
return src("src/scss/*.scss")
.pipe(sass()) //编译
.pipe(dest("dist/css"))
.pipe(cleanCss()) //压缩
.pipe(rename(path => {
path.basename += ".min"
}))
.pipe(dest("dist/css"))
}
// 压缩js
function buildJS() {
return src(["src/js/*.js"])
// .pipe(babel({ //编译
// "presets": ["@babel/env"]
// }))
// .pipe(uglify()) //压缩
.pipe(dest("dist/js"))
}
function auto() {
watch("src/*.html", parallel(buildHtml))
watch("src/scss/*.scss", parallel(buildScss))
watch("src/js/*.js", parallel(buildJS))
}
function server() {
src("dist")
.pipe(webServer({
middleware(req, res, next) {
if (req.url === "/api/login") {
// 处理 post
let body = "";
req.on("data", (chunk) => {
body += chunk;
})
req.on("end", () => {
let { username, password } = JSON.parse(body);
if (username === "admin" && password === "123") {
res.end("1")
} else {
res.end("0")
}
})
} else {
next(); //继续下一个
}
}
}))
}
module.exports = {
buildHtml,
buildScss,
buildJS,
build: parallel(buildHtml, buildJS, buildScss),
auto,
server,
default: parallel(auto, server)
}