来源:未知 时间:2023-11-10 11:21 作者:小飞侠 阅读:次
[导读] 如果你的 Gulp 构建在修改模块文件时不触发更新,除非修改了主 main.js 文件,这可能是因为 Gulp 默认使用文件的修改时间(timestamp)来判断文件是否需要更新。这对于模块文件可能不起...
如果你的 Gulp 构建在修改模块文件时不触发更新,除非修改了主 main.js 文件,这可能是因为 Gulp 默认使用文件的修改时间(timestamp)来判断文件是否需要更新。这对于模块文件可能不起作用,因为它们的修改时间可能没有发生变化,即使文件内容发生了变化。 解决这个问题的一种方法是使用 Gulp 插件 gulp-changed,它会比较文件内容而不仅仅是修改时间。以下是一个可能的 Gulp 配置: 首先,确保你已经安装了 gulp-changed: npm install gulp-changed --save-dev 然后,在你的 gulpfile.js 文件中,将 gulp-newer 替换为 gulp-changed: const gulp = require('gulp'); const changed = require('gulp-changed'); const gulpif = require('gulp-if'); const concat = require('gulp-concat'); const paths = { scripts: 'src/**/*.js', mainJS: 'src/main.js', dest: 'dist' }; gulp.task('scripts', function() { return gulp.src(paths.scripts) .pipe(changed(paths.dest)) // 使用 gulp-changed 替换 gulp-newer .pipe(gulp.dest(paths.dest)); }); gulp.task('concat', function() { return gulp.src([paths.mainJS, paths.scripts]) .pipe(gulpif('main.js', concat('bundle.js'))) .pipe(gulp.dest(paths.dest)); }); gulp.task('watch', function() { gulp.watch(paths.scripts, gulp.series('scripts', 'concat')); }); gulp.task('default', gulp.series('scripts', 'concat', 'watch')); 通过使用 gulp-changed,它会根据文件内容而不是修改时间来判断文件是否需要更新。这样,即使模块文件内容发生变化,构建任务也会正确更新。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com