Javascript 有人能解释一下在我的js目录中获取src文件时**/*.js是什么意思吗?

Javascript 有人能解释一下在我的js目录中获取src文件时**/*.js是什么意思吗?,javascript,jquery,gulp,Javascript,Jquery,Gulp,我试图学习如何将一个GulpJS文件放在一起,并在一些地方看到下面的源代码引用*/.js,但不确定它的确切含义。有人能解释一下这是什么吗 如果我的文件结构如下所示,我将如何访问 *每个js库中的每个js文件和js src中的每个js文件? *如何访问每个图像 css/ libs/ lib1.scss lib2.scss src/ partials/ partial1.scss part

我试图学习如何将一个GulpJS文件放在一起,并在一些地方看到下面的源代码引用*/.js,但不确定它的确切含义。有人能解释一下这是什么吗

如果我的文件结构如下所示,我将如何访问 *每个js库中的每个js文件和js src中的每个js文件? *如何访问每个图像

css/
    libs/
        lib1.scss
        lib2.scss
    src/
        partials/
            partial1.scss
            partial2.scss
            partial3.scss
js/
    libs/
        lib1/
            lib11.js
        lib2/
            lib21.js
        lib3/
            lib31.js
    src/
        src1.js
        src2.js
        src3.js

img/
    imgs1/
        img11.jpg
        img12.jpg
        img13.png
    imgs2/
        img21.gif
        img22.png
        img23.jpg

*
几乎是一个通用的通配符-它可以匹配该位置的任何内容

示例:

因此,如果您想同时针对
css
js
目录中的
libs
目录,您可以编写
/*/libs/
“***.js”表示“当前目录下所有目录中的所有.js文件,以递归方式”


传统的“*/*.js”表示“当前目录下所有目录中的所有.js文件”。

首先
。/
是“向上移动一个父目录”的命令。因此,如果它是
。/../
,它将上升2个目录

因此,
。/*
与“任何一个父目录上的文件”的说法相同。因此,对于您的问题,
***.js
——这与“从任何高于一级的父目录获取任何.js文件”的说法相同


当使用通配符时,这是一个递归命令。

对模式匹配和gulp用于解析这些全局匹配的模块有一个基本的了解是很有帮助的,即

环球之星** 您询问的
**
符号称为“globstar”。在大多数unix模式匹配中,
*
只能表示一个目录级别:

"a/*/*.js"

a/b/app.js => MATCH
a/b/c/app.js => NO MATCH
a/app.js => NO MATCH
globstar允许您在目录之间指定未知数量的,如下所示:

"a/**/*.js"

a/b/app.js => MATCH
a/b/c/app.js => MATCH
a/app.js => MATCH
a/b/c/d/e/f/g/h/i/j/app.js => MATCH
other/app.js => NO MATCH
否定 你可以用一个带前缀的
来否定它们

["a/**/*.js", "!a/vendor/**/*.js"]

a/b/c/app.js => MATCH
a/vendor/b/backbone.js => NO MATCH
用于从linting等中排除供应商文件

多球组合 您还可以在一个数组中组合多个glob,以便在一次搜索中包含多个模式

["js/**/*.js", "img/**/*.png"]

js/a/b/app.js => MATCH
img/cat.png => MATCH

您请求的glob如下所示:

["js/**/*.js", "img/**/*"]

嘿,如果每个js lib目录中都有多个js文件,比如file.min.js file.js file.concat.js,但我只是想将file.min.js添加到我编译的文件中,会怎么样?如果你的意思是想要特定的文件,但不想要上面的任何目录?然后它将像这样
**/file.min.js
,它将递归搜索。甚至这个
**/js/file.min.js
告诉我们递归搜索上面一个目录中的'js'文件,如果找到了,它就会抓取file.min.js。(注意,这是一个被低估的非常强大的命令。我在服务器端脚本编写中经常使用这种方法)。嘿,所以我尝试了“/js/*/libs/”,但这似乎没有在js libes中编译任何东西?你应该试试@MarcoS写的东西。