layero.json — конфигурация в репозитории
layero.json — это опциональный JSON-файл в корне репозитория (или
в подпапке для monorepo). Он переопределяет автоопределение Layero
для этого репозитория и этого деплоя. Полезен, когда:
- AI-агент (Claude Code, Cursor) настраивает деплой за вас — он кладёт правильные значения в этот файл одним PR;
- Конфиг должен меняться по веткам (staging собирается иначе чем production);
- В команде важно видеть в код-ревью, кто и зачем меняет настройки сборки.
Минимальный пример
{
"$schema": "https://layero.ru/schema/layero-v1.json",
"framework": "nextjs",
"build": "npm run build",
"output": "out",
"node": "20"
}
Все поля опциональны. Можно положить только то, что нужно переопределить:
{
"$schema": "https://layero.ru/schema/layero-v1.json",
"output": "bundle"
}
Указание $schema подключает автодополнение и подсветку ошибок в
любом IDE с поддержкой JSON Schema (VS Code, JetBrains, Neovim).
Поля
framework
Имя фреймворка. Перебивает автоопределение Layero. Допустимые значения и алиасы — в списке поддерживаемых фреймворков.
build
Shell-команда, которую Layero запустит для сборки. Перекрывает
дефолт фреймворка. Пример: "pnpm build:prod".
install
Shell-команда для установки зависимостей. По умолчанию —
reproducible-команда вашего пакетного менеджера (npm ci,
yarn install --frozen-lockfile, pnpm install --frozen-lockfile).
output
Путь к папке с собранной статикой относительно корня проекта.
Layero загружает её содержимое на CDN. Примеры: dist, build,
out, .next, dist/app/browser.
node
Версия Node, которую использовать при сборке. Перебивает .nvmrc
и engines.node из package.json. Принимает мажор ("20"),
полную версию ("20.11.1") или alias ("lts").
runtime (зарезервировано)
Только для SSR/runtime-приложений (ssr_node, streamlit,
gradio, flask). Большинству статических проектов это поле
не нужно.
env, ignore (зарезервировано)
Будут поддержаны в следующих версиях схемы.
Порядок переопределения
При деплое Layero резолвит каждое поле сверху вниз — побеждает первое заданное:
1. layero.json в репозитории (самый высокий приоритет)
2. Настройки проекта в дашборде
3. Автоопределение по сигналам репо
4. Дефолт фреймворка (нижний приоритет)
В логе деплоя видно, откуда пришло каждое значение:
[config] framework=nextjs (from layero.json)
[config] node=20.11.1 (from .nvmrc)
[config] build=`npm run build` (from layero.json)
[config] output=out (default for nextjs)
Где должен лежать файл
- Обычный проект: в корне репозитория.
- Monorepo: в той же подпапке, что указана в
root_directoryпроекта. Например, если в дашборде указаноapps/web— Layero читаетapps/web/layero.json.
Что отображается в дашборде
Когда layero.json найден и валиден, Layero показывает голубой
баннер в мастере настройки и в логе деплоя:
ⓘ Найден
layero.jsonв репозитории. Поля ниже подставлены из этого файла.
Если файл содержит ошибки (невалидный JSON, неизвестные поля, пустые значения) — появляется янтарный баннер со списком замечаний. Деплой при этом не падает: невалидные поля игнорируются, корректные применяются.
Schema URL
https://layero.ru/schema/layero-v1.json
URL стабильный. Новые версии схемы получат имена v2, v3, …;
старые продолжат работать.