Skip to content

Files

Latest commit

1f86980 · Jul 18, 2016

History

History
219 lines (145 loc) · 10.1 KB

build.md

File metadata and controls

219 lines (145 loc) · 10.1 KB

Build

Команда build производит сборку приложения.

Опции:

Общие

-b, --base <path>

Задает базовый путь. По умолчанию это локация файла конфигурации (basis.config) или текущая папка, если конфигурационный файл не найден или не используется (указан флаг --no-config).

Базовый путь также используется для разрешения абсолютных путей в приложении. Другими словами, он ассоцируется с корнем сайта. Приложение не может ссылаться на файлы, которые располагаются не в рамках базового пути.

Предположим, что базовый путь /foo/bar/baz. Если в приложении встретится, например, basis.require('/path/to/file.ext'), то такой путь будет преобразован в /foo/bar/baz/path/to/file.ext. Попытки "всплыть" выше игнорируются, например, для basis.require('/../../path/to/file.ext') будет по-прежнему получен путь /foo/bar/baz/path/to/file.ext.

-f, --file <filename>

Указывает путь к индексному файлу. По умолчанию это index.html в базовой папке.

--preset

-o, --output <path>

Указывает папку, где должен быть расположен результат сборки. По умолчанию это build в базовой папке.

-t, --target <target>

Определяет, в каком виде необходимо получить результат. Возможны следующие варианты:

  • fs (по умолчанию) – результат в виде множества файлов, которые записываются на диск (файловую систему)
  • output-graph – генерирует выходной граф файлов в формате .dot, который сохраняется в файл output-graph.dot
  • none – не производить никакого результата; может использоваться для определения успешности выполнения основного процесса сборки, когда сам результат не нужен

-p, --pack

Включает режим сборки с сжатием результата. Является сокращением для --js-cut-dev --js-pack --css-pack. Следующие записи эквивалентны:

> basis build -p
> basis build --pack
> basis build --js-cut-dev --js-pack --css-pack

--no-color

По умолчанию лог действий сборщика раскрашивается для лучшей читаемости. Это происходит только там, где поддерживаются ansi коды, – главным образом, при выводе в терминале или консоли (tty). Поддержка определяется автоматически. Опция --no-color позволяет принудительно запретить использовать цвета.

--verbose

По умолчанию выводится только основная информация о процессе сборки. Для вывода детальной информации используется флаг --verbose. Подробная информация позволяет получить полную картину того, что и как делает сборщик.

--silent

--warnings

По умолчанию в информации о сборке выводится лишь общее количество предупреждающих сообщений (warning).

> basis build
Build with basisjs-tools@1.3.17 (65fa05dda9)
Index file: ./index.html
Output: ./build

...

Warnings: 1
Build done in 1.033s

Если указать опцию --warnings, будет выведен и сам список предупреждений.

> basis build --warnings
Build with basisjs-tools@1.3.17 (65fa05dda9)
Index file: ./index.html
Output: ./build

...

Warnings: 1
  template/foo.css
    * File `template/foo.css` not found (/abs/path/to/template/foo.css)
Build done in 1.066s

--stat

CSS

--css-pack

Включает режим сборки с сжатием CSS. Для сжатия используется библиотека csso (она также используется для получения AST, которое анализируется и трансформируется).

Стили сжимаются как в файлах, так и в атрибутах stylehtml файлах и шаблонах).

-i, --css-inline-image <max-size>

Указывает сборщику, что следует заменять в стилях ссылки на файлы, равные или меньшие max-size, на Data URI, то есть их base64 представление. Предположим, что для max-size задано значение 4096 (то есть basis build -i 4096) и размер foo.png меньше этого значения, тогда файл стилей:

.foo {
  background: url(foo.png);
}

примет следующий вид:

.foo {
  background: url(data:image/png;base64,...);
}

--css-optimize-names

Включает режим сборки с сокращением имен классов. В этом случае сборщик заменяет имена в css, html и шаблонах (файлах с расширением .tmpl) на более короткие. Обычно это одно- или двухбуквенные имена. Например, следующий файл стилей:

.foo {}
.bar {}
.foo .bar {}

с включеной опцией примет вид:

.a {}
.b {}
.a .b {}

Данная трансформация является небезопасной и может применяться, если есть гарантия, что имена классов не используются, например, в JavaScript коде.

--css-usage

JavaScript

--js-cut-dev

Указывает сборщику, что следует вырезать код, помеченный как отладочный. Существуют два типа специальных отметок: ;;; и /** @cut ... */. Такие метки и все, что находится правее них до конца строки, вырезаются. Например, код:

// example
;;; console.log('debug');
/** @cut */ console.log('debug');
/** @cut some comment */ console.log('debug');
console.log('foo');

с включеной опцией примет вид:

// example



console.log('foo');

--js-optimize-throws

--js-pack

--js-pack-cmd <string>

По умолчанию google-closure-compiler --charset UTF-8.

Misc

--l10n-package [storageKey]

Указывает сборщику, что следует выносить культуры во внешние ресурсы. По умолчанию все культуры включаются в основной JavaScript файл результата сборки в составе словарей. Для мультиязычных приложений это может быть не оптимально и пропорционально увеличивает размер основного файла сборки при добавлении каждой новой культуры. Данная опция включает режим, при котором культуры извлекаются из словарей, сохраняются во внешних файлах и загружаются по требованию (при переключении культуры). Необязательный параметр задает префикс, который будет использоваться для кеширования файлов культур в локальном хранилище браузера (по умолчанию l10n).

--l10n-default-culture <culture>

Задает пакет культуры, включаемый в основной JavaScript файл результата сборки для ускорения первичной загрузки приложения (по умолчанию en-US). Используется только в режиме сборки с пакетами культур (флаг --l10n-package).

--tmpl-default-theme

--theme

--same-filenames

--single-file