什么是 ** glob 字符?

What is the ** glob character?

我的 react gulpfile 中有这条路径:

var path = {
  HTML: 'src/index.html',
  ALL: ['src/js/*.js', 'src/js/**/*.js', 'src/index.html'],
  JS: ['src/js/*.js', 'src/js/**/*.js'],
  MINIFIED_OUT: 'build.min.js',
  DEST_SRC: 'dist/src',
  DEST_BUILD: 'dist/build',
  DEST: 'dist'
};

什么是双球字符?

我知道单球体是什么...但是双球体是什么? single glob

** 匹配任何字符 包括 正斜杠 /
* 匹配任何字符 除了 正斜杠(仅匹配文件或目录名称)

它几乎与单个星号相同,但可能包含 多个 目录级别。

换句话说,while /x/*/y 将匹配如下条目:

/x/a/y
/x/b/y

等等(通配符部分只有一个目录级别),双星号 /x/**/y 匹配如下内容:

/x/any/number/of/levels/y

与"any number of levels"的概念也包括零(换句话说,/x/**/y将匹配/x/y作为其选择之一)。


顺便说一句,尽管我不想将 任何东西都归功于大型机, 我相信自从 MVS 的早期时代就已经使用它来允许选择多个数据集级别:-)

Like Grunt, the double ** is saying, "Look in all the subfolders within js and for all of the .js files."

你实际上可以参考这里:

https://www.codefellows.org/blog/quick-intro-to-gulp-js

通常用于表示任意数量的子目录。所以

src/js/**/*.js

会匹配

src/js/files/*.js
src/js/more-files/*.js

etc
etc