You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gulp src中排除带.ru/.com后缀的文件夹路径?

解决Gulp排除特定后缀文件夹的问题

嘿,我明白你现在的困扰——想排除.ru和.com后缀的文件夹,但之前的规则完全没起作用,所有hello.js都被压缩了对吧?咱们来一步步搞定这个问题。

先说说你之前配置的问题

你写的这些排除规则比如!folder/*.ru、!folder/*[^ru]其实都没命中目标:

  • !folder/*.ru 只会匹配folder目录下名为xxx.ru的文件,而不是文件夹;要匹配文件夹的话,路径末尾必须加斜杠,还要用**递归匹配子目录。
  • !folder/*[^ru] 这种写法反而会排除掉不以ru结尾的文件夹,完全和你的需求相反了。

正确的配置方案

我们需要精准匹配所有以.ru或.com结尾的文件夹,然后排除这些文件夹下的所有内容(或者直接排除这些文件夹里的hello.js)。修改后的gulpfile.js应该是这样的:

var gulp = require('gulp'), 
    uglify = require('gulp-uglify'); 

gulp.task('run', function () { 
  return gulp.src([
    // 先排除所有.ru后缀文件夹下的所有内容
    '!folder/*.ru/**',
    // 再排除所有.com后缀文件夹下的所有内容
    '!folder/*.com/**',
    // 如果landing目录也有同样需求,加上下面两行
    // '!landing/*.ru/**',
    // '!landing/*.com/**',
    // 最后指定要处理的目标文件
    'folder/**/js/hello.js'
  ])
  .pipe(uglify())
  .pipe(gulp.dest(function (file) { 
    return file.base; 
  }));
});

规则解释

  • !folder/*.ru/**:*.ru匹配folder下所有以.ru结尾的文件夹,/**表示递归匹配该文件夹下的所有子目录和文件,加上!就会排除这些内容。
  • !folder/*.com/**:和上面同理,针对.com后缀的文件夹。
  • 最后保留folder/**/js/hello.js,这样Gulp就只会处理非.ru/.com后缀文件夹里的hello.js了。

这样调整后,你的排除规则应该就能正常生效啦!

内容的提问来源于stack exchange,提问作者Thomas Miracle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:23:38