You need to enable JavaScript to run this app. Gulp watch为何无法监听带点前缀的.default等隐藏文件夹内的文件变更
优惠活动
大模型
产品
解决方案
定价
更多

Gulp watch为何无法监听带点前缀的.default等隐藏文件夹内的文件变更

问题根因

你配置的./app/**/*.sass通配符遵循gulp底层依赖的glob默认匹配规则:默认会直接跳过以.为前缀的隐藏目录与隐藏文件。
.default文件夹属于典型的带点前缀隐藏目录,**通配符默认仅遍历非隐藏子目录,不会进入该文件夹内部匹配对应的.sass文件,因此无法监测到内部文件的变更。

解决方案

可通过两种方式修改配置实现对隐藏文件夹的监听,优先推荐第一种方案:

  • 方法一:在gulp.watch的配置项中开启dot参数,放开隐藏路径的匹配限制
    该方式无需修改原有通配符写法,仅需在watch方法中新增对应配置,修改后的代码如下:
    gulp.task('watch', function() {
        // 新增 { dot: true } 配置,允许匹配带点前缀的隐藏文件/目录
        gulp.watch('./app/**/*.sass', { dot: true }, gulp.parallel('sass'));
        gulp.watch('./app/**/*.js', { dot: true }, gulp.parallel('js'));
    });
    
    配置作用:dot: true会让底层glob匹配器将带点前缀的文件、文件夹视为普通路径遍历,不再默认跳过。
  • 方法二:手动调整通配符规则,显式声明匹配隐藏目录
    若不想新增全局配置,也可修改通配符写法覆盖隐藏目录的匹配逻辑,示例代码:
    gulp.task('watch', function() {
        gulp.watch('./app/{,**/}.*/**/*.sass', gulp.parallel('sass'));
        gulp.watch('./app/{,**/}.*/**/*.js', gulp.parallel('js'));
    });
    
    该写法容易出现通配符边界匹配错误,非必要不建议使用。

内容的提问来源于stack exchange,提问作者Viktor K.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.31 14:06:05