我有一个gulp-watch脚本,可以监视我的图像目录中的更改,然后处理图像。问题是,为网络设置的photoshop正在将临时文件放在目录中,然后非常快速地重命名它们,这会使我的图像处理脚本运行起来。我想将它们从监视脚本中排除。
临时文件的格式为moog-mftrem_tmp489245944
我想使用_tmp
字符串排除,但不确定如何排除文件名中间的字符。这是我尝试过但似乎没有用的东西:
gulp.task('watch', function() {
gulp.watch(['app/images/pedals/*.png','!app/images/pedals/*_tmp*'], ['images']);
});
感谢您的帮助!
答案 0 :(得分:1)
虽然您的临时文件没有扩展名,但如果您没有指定,则glob路径不知道该怎么做。它只是一个文件夹的路径,实际上它找不到与你的glob匹配的文件夹名称。
<强>尝试:强>
gulp.task('watch', function() {
gulp.watch(['app/images/pedals/*.png','!app/images/pedals/*_tmp*.*'], ['images']);
});
请注意额外的:。* (句号星号)
为了完整性,我想添加递归的globstar / ** /
<强>即强>
gulp.task('watch', function() {
gulp.watch(['app/images/pedals/**/*.png','!app/images/pedals/**/*_tmp*.*'], ['images']);
});
答案 1 :(得分:-1)
考虑使用'gulp-filter':
const gulp = require('gulp');
const filter = require('gulp-filter');
gulp.task('watch', function() {
gulp.watch('app/images/pedals/*.png', ['images']);
});
const f = filter(file => file.path.includes('tmp'));
gulp.task('images', function() {
return gulp.src('app/images/pedals/*.png')
.pipe(f)
.pipe(gulp.dest('./build'))
});