我搭建了一个用于传统前端项目的文件编译、压缩的通用架构。
但在我实现文件监控部分时,发现对应的task未执行。
运行gulp build有效,运行gulp dev不报错,但文件变化时,对应的task没有执行,不知道是因为什么?
const { series, src, dest, watch } = require('gulp');
const babel = require('gulp-babel');
const uglify = require('gulp-uglify');
const sass = require('gulp-sass')(require('sass'));
const clean = require('gulp-clean');
const ENTRY_PATH = "D:\\demo\\golang\\go-nav\\web\\gulp"
const OUTPUT_PATH = "D:\\demo\\golang\\go-nav\\web\\dist"
const CONFIG = {
entry: {
sass: ENTRY_PATH + "/sass",
js: ENTRY_PATH + "/js"
},
output: {
css: OUTPUT_PATH + "/css",
js: OUTPUT_PATH + "/js"
}
}
function style() {
console.log(1)
return src(CONFIG.entry.sass + '/*.scss')
.pipe(sass().on('error', sass.logError))
.pipe(dest(CONFIG.output.css));
}
function js() {
return src(CONFIG.entry.js + '/*.js')
.pipe(babel())
.pipe(uglify())
.pipe(dest(CONFIG.output.js));
}
function cleanTask(){
return src(OUTPUT_PATH)
.pipe(clean({force: true}))
}
exports.build = series(cleanTask,style,js)
exports.dev = function(){
watch([
CONFIG.entry.sass + '/*.scss',
CONFIG.entry.sass + '/**/*.scss'
],series(style))
watch(CONFIG.entry.js + '/*.js',series(js))
}
不再使用gulp.watch,改用gulp-watch。