我有一个看起来像这样的项目
ls foo/
- file0.js
- a/file1.js
- b/file2.js
- c/file3.js
- d/file4.js
如何编写glob 模式以排除 c & d 文件夹但获取所有其他 javascript 文件?我在这里查看了一个示例,但无法进行任何操作。
我想解决方案看起来与此类似:
glob('+(**/*.js|!(c|d))', function(err, file) {
  return console.log(f);
});
我想回来
- file0.js
- a/file1.js
- b/file2.js
对于没有第二个参数来设置排除的环境,我们可以使用下面示例中演示的模式来实现这样的异常:
图案
/src/**/!(els)/*.scss
结构体
/src/style/kit.scss
/src/style/els/some.scss
/src/style/els/two.scss
结果
它只会选择 /src/style/kit.scss
我们可以使用http://www.globtester.com或https://www.digitalocean.com/community/tools/glob进行快速在线测试。
如果我们正在使用Gulp 任务运行器。或者其他一些工具或类提供第二个或多个排除参数。或者只是多个支持排除的 globs 选择器。然后我们可以像下面的例子一样进行 gulp show:
吞咽
我们传递一个数组而不是一个字符串(多个 globs 选择器,一个接一个地应用以添加更多文件或排除)
src(['src/style/**/*.{scss,sass}', '!(src/style/els/**)'])
我们可以有多个排除项
watch(['src/style/**/*.{scss,sass}', '!(src/style/els/**)', '!(src/style/_somefileToExclude.scss)'])
在 gulp 中,您可以使用任何支持数组作为 globs 选择器的方法。src和watch什么我就用了。
注意:如果您想排除一个文件夹及其所有子文件夹,我们**将按上述方式使用,而不是**/*哪个将不起作用。如果您需要一些特定的文件类型(扩展名),那么您可以使用**/*.scss例如。
我在自述文件中忽略了一个忽略选项:
glob('**/*.js', { ignore: '{c,d}/**' }, cb)
这将从匹配中排除 c + d 文件夹。更多这里
| 归档时间: | 
 | 
| 查看次数: | 5958 次 | 
| 最近记录: |