1.0.0 • Published 3 years ago

su-gulpdemo v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

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)
}