首页 > 建站教程 > 其他 >  gulp文件操作:gulp.series、gulp.parallel的使用和区别正文

gulp文件操作:gulp.series、gulp.parallel的使用和区别

gulp.series 顺序执行,gulp.parallel 用于并行执行。


'use strict'
var fs = require('fs');
var gulp = require('gulp');             // gulp 自身
var uglify = require('gulp-uglify');    // 引入压缩组件
var concat = require('gulp-concat');    // 引入合并组件
var path = require('path');             // 文件路径
 
let workSpace = "./";
 
gulp.task("pendJs", function(done) {
    let mainFilePath = path.join(workSpace, "js/main.js”);
    // 读取文件内容
    let fileInfo = fs.readFileSync(mainFilePath, "utf-8");
    if (fileInfo) {
        fileInfo += "\n";
        var timeTemp = Date.parse(new Date());
        fileInfo += `window.currTimestamp = ${timeTemp};`
        let destFile = path.join(workSpace, "txt");
        // 文件是否存在
        if (fs.existsSync(destFile)) {
            console.log("exists file path");
        } else {
            console.log("not exists file path");
            // mkdir。
            fs.mkdirSync(destFile)
        }
        // 写入文件
        fs.writeFileSync(path.join(destFile , "a.js"), fileInfo, "utf8");
        done();
    }
})
gulp.task("bbb", function(done) {
    done();
})
// gulp.series 顺序执行   gulp.parallel 用于并行执行
// 先执行”bbb”, 后执行 “pendJs”
gulp.task('taskName', gulp.series("bbb" ,"pendJs",function() {
    return gulp.src('js/*.js')          // 找到src 目录下的所有文件夹中的所有 js 文件
            .pipe(uglify())             // 压缩
            .pipe(concat('all.min.js')) // 输入到压缩文件
            .pipe(gulp.dest('./build')) // 制定目录
            .on('end', callback)        // 结束事件回调
}));
// 检查文件的体积
function callback() {
    var path = './build/all.min.js';
    var exists = fs.existsSync(path);
    if (!exists) {
        return;
    }
    var states = fs.statSync(path);
    console.log("file size: " + Math.ceil(states.size / 1024) + "kb");
}