来源:未知 时间: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