当前位置: 首页 > 工具软件 > Gulp.js > 使用案例 >

gulp 文件操作,gulp.series、gulp.parallel

王扬
2023-12-01

 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) {
    console.log("-----------pendJs");
    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) {
    console.log("------bbb")
    done();
})

// gulp.series 顺序执行   gulp.parallel 用于并行执行
// 先执行”bbb”, 后执行 “pendJs”
gulp.task('taskName', gulp.series("bbb" ,"pendJs",function() {
    console.log("-----------taskName");
    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");
}

// 并行执行方法,gulp3.+ 和 gulp4.+  

 类似资料: