gulp 3版本gulpfile.js迁移适配gulp 4+版本问题求助
Gulp 3.x 配置迁移至 Gulp 4.x 适配方案
完整适配后可运行代码
var gulp = require('gulp'); // 新版gulp-sass需要手动绑定sass编译器,使用node-sass的话可替换为require('node-sass') var sass = require('gulp-sass')(require('sass')); var cleanCSS = require('gulp-clean-css'); var uglify = require('gulp-uglify'); // 处理scss文件并压缩输出 gulp.task('sass', function () { return gulp.src('_config/scss/**/*.scss') .pipe(sass().on('error', sass.logError)) .pipe(cleanCSS()) .pipe(gulp.dest('assets/css')); }); // 压缩_config/js目录下的js文件 gulp.task('js', function () { return gulp.src('_config/js/**/*.js') .pipe(uglify()) .pipe(gulp.dest('assets/js')); }); // 压缩_config/scripts目录下的js文件 gulp.task('scripts', function () { return gulp.src('_config/scripts/**/*.js') .pipe(uglify()) .pipe(gulp.dest('assets/scripts')); }); // 文件变动监听任务 gulp.task('watch', function () { gulp.watch('_config/scss/**/*.scss', gulp.series('sass')); gulp.watch('_config/js/**/*.js', gulp.series('js')); gulp.watch('_config/scripts/**/*.js', gulp.series('scripts')); // 原配置引用了未定义的img任务,补全图片处理逻辑后可取消下方注释 // gulp.watch('_config/img/**/*', gulp.series('img')); }); // 默认执行任务:无依赖任务并行执行提升速度,需串行可替换为gulp.series gulp.task('default', gulp.parallel('sass', 'js', 'scripts', 'watch'));
核心改动说明
- 移除了Gulp 4.x不再支持的任务数组传参写法,所有批量执行的任务均通过
gulp.parallel()(并行无依赖任务)或gulp.series()(串行有依赖任务)包裹 - 调整
gulp.watch的第二个参数格式,替换为gulp.series()包裹的对应任务名 - 新增了gulp-sass的编译器绑定逻辑,适配新版gulp-sass的使用要求
- 注释了原配置中引用的未定义img任务,补全对应逻辑后可直接启用
依赖安装提示
如果还未安装相关依赖,执行以下命令即可:
npm install gulp gulp-sass sass gulp-clean-css gulp-uglify --save-dev
安装完成后执行gulp即可启动默认工作流,单独执行某任务可直接调用gulp 任务名,比如gulp sass仅编译scss文件。
内容的提问来源于stack exchange,提问作者user756659
相关产品推荐
相关产品推荐

