Сборка скриптов
Помимо того, что существует возможность напрямую задать исполняемый скрипт, часто существует потребность в разделении исходного кода по файлам. Как только проект начинает содержать первые классы, утильные функции, и прочие вещи, которые следовало бы разделить, работать в одном файле становится просто невозможно. Тут нам на помощь приходят сборочные файлы, а также продвинутые настройки тулчейна.
Компиляция файлов
Для запуска файлов используется свойство compile
, добавление какого-либо скрипта в него приведет к его запуску. Мы уже рассматривали описание его элемента:
{
"path": "относительный путь от папки, в которой расположен build.config",
"sourceType": "launcher, main, custom, preloader или library"
}
Если вы не знаете, какой sourceType
нужно выбрать, рассмотрите Жизненный цикл мода. Как уже было сказано, свойство compile
задает скрипты, которые будут скомпилированы и загружены. Например, build.config может выглядеть так:
{
...
"compile": [
{
"path": "main.js",
"sourceType": "main"
}
]
}
Что означает, что скрипт будет загружен из текущей папки из файла main.js и запустится после вызова Launch();
из лаунчера проекта. Но в этом случае файл не собирается, а просто загружается из уже существующего. А что, если мы хотим именно собирать несколько файлов в один?
Скриптов может быть сколько угодно
А для того чтобы собрать их все, нужно объединить скрипты в один. Это сделает за вас Inner Core или Type Script Compiler тулчейна в зависимости от того, какую платформу вы используете.
Начнем с того, что для сборки нужно определить свойство buildDirs
вашего build.config:
{
...
"buildDirs": [
{
"targetSource": "main.js",
"dir": "dev/"
}
]
}
Теперь файлы, находящиеся в папке dev/ будут собраны в файл main.js, который мы уже определили ранее. Но для того чтобы определить скрипты, которые будут собраны, помимо этого нам нужно определить файл .includes в созданной директории dev/.
.includes
Файл описывает список файлов, которые будут включены в итоговый скрипт. Рассмотрим его реализац ию на примере:
# комментарии могут описывать почему включен тот или иной файл
header.js
api/tests.js
api/globals.js
# будут включены все файлы в папке, в случае тулчейна
# дополнительно включаются еще и подпапки
module/.
// также комментарии могут быть использованы в таком виде