5

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
4

4 に答える 4

15

パターン マッチングと、これらのグロブ マッチを解決するために gulp が使用しているモジュールについての基本的な理解があると役立ちます。つまり、https://github.com/isaacs/minimatch

グロブスター **

**あなたが尋ねているシンボルは「グロブスター」として知られています。ほとんどの UNIX パターン マッチングでは、*は 1 つのディレクトリ レベルのみを表すことができます。

"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

リンティングなどからベンダー ファイルを除外するのに役立ちます。

複数のグロブの組み合わせ

複数のグロブを 1 つの配列に組み合わせて、複数のパターンを 1 つの検索として含めることもできます。

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

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

リクエストしたグロブは次のようになります。

["js/**/*.js", "img/**/*"]
于 2014-02-18T14:36:41.213 に答える