Что означают квадратные скобки в шаблоне источника пакета?
aurelia.json
файл имеет bundles.source
имущество. Кажется, он использует синтаксис glob, который поддерживает minimatch. Из коробки au new
Тем не менее, шаблон включает в себя квадратные скобки вокруг некоторых шаблонов. Например
"[**/*.js]"
По моему опыту, квадратные скобки означают диапазоны, такие как [a-z]
отображение на abcdefg...wxyz
, Это также то, что уважает мини-матч.
> match = require("minimatch");
> match("q", "[a-z]");
true
Что квадратные скобки означают для Aurelia CLI при обработке bundles.source
имущество?
1 ответ
Скобки фактически определяют, будем ли мы отслеживать зависимости того, что мы находим, основываясь на шаблоне glob. Двойная звезда (**/*
) - это то, что определяет часть шаблона "поиск в подпапках тоже".
Хотя это задокументировано в разделе по настройке JSPM, оно также применимо для настройки с помощью CLI. документация
Наша цель - создать пакет только кода нашего приложения. Мы должны как-то проинструктировать компоновщик не рекурсивно отслеживать зависимости. Угадай, что? [*.js] это то, как мы это делаем.
[*.js] исключит зависимости каждого модуля, которые выдает шаблон glob *.js. В приведенном выше случае это исключит aurelia-framework, aurelia-fetch-client и так далее.
Например, вы создадите такой шаблон: [src/**/*.js]
, вы запрашиваете каждый файл JavaScript в папке и каждой подпапке src
без отслеживания каких-либо зависимостей. Это означает, что если модуль A
в src
требуется модуль B
в test
затем модуль B
не будет включен, потому что мы указали в скобках, что мы не отслеживаем зависимости.
Опять же, если вы взяли шаблон так: src/**/*.js
, вы запрашиваете каждый файл JavaScript в папке и каждой подпапке src
включая любые зависимости этих файлов. Это означает, что если модуль A
в src
требуется модуль B
в test
затем модуль B
будет включен, потому что мы включаем зависимости.
Важно отметить, что именно так Аурелия определяет свои зависимости. Несмотря на то, что мы используем шаблоны глобусов и мини-сопоставления, синтаксис скобок (насколько я знаю) не является частью этих библиотек, а скорее позволяет Aurelia быстро и легко определить, отслеживаем мы или нет.