Что означают квадратные скобки в шаблоне источника пакета?

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 быстро и легко определить, отслеживаем мы или нет.

Другие вопросы по тегам