web-dev-qa-db-de.com

Was ist das ** glob Zeichen?

Ich habe diesen Pfad in meiner Reaktionsgulpfile:

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'
};

Was ist der Doppelkugelcharakter?

Ich weiß, was die einzelne Kugel ist ... aber was ist die doppelte? single glob

65
Jwan622

Es ist fast dasselbe wie das einzelne Sternchen, kann jedoch aus mehreren Verzeichnisebenen bestehen.

Mit anderen Worten, während /x/*/y wird passen:

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

und so weiter (nur eine Verzeichnisebene im Platzhalterbereich), der doppelte Stern /x/**/y passt auch zu Dingen wie:

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

Abgesehen davon, so sehr ich es hasse, dem Mainframe irgendetwas, gutzuschreiben. Ich glaube, dies wurde seit den Ohrlistentagen von MVS verwendet, um die Auswahl von Datensätzen auf mehreren Ebenen zu ermöglichen.

69
paxdiablo

Es wird normalerweise verwendet, um eine beliebige Anzahl von Unterverzeichnissen anzugeben. So

src/js/**/*.js

Würde passen

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

etc
etc
24
Sean

** entspricht einem beliebigen Zeichen einschließlich einem Schrägstrich /
* stimmt mit jedem Zeichen überein außer ein Schrägstrich (nur mit dem Datei- oder Verzeichnisnamen)

15
Thomas S.

Wie Grunt sagt das Doppel **: "Sehen Sie in allen Unterordnern in js nach und suchen Sie nach allen .js-Dateien."

Sie können hier tatsächlich für das gleiche verweisen:

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

4
Shivi