Javascript 有人能解释一下在我的js目录中获取src文件时**/*.js是什么意思吗?
我试图学习如何将一个GulpJS文件放在一起,并在一些地方看到下面的源代码引用*/.js,但不确定它的确切含义。有人能解释一下这是什么吗 如果我的文件结构如下所示,我将如何访问 *每个js库中的每个js文件和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
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写的东西。