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.+