fix(make): пересобирать изменившийся фронтенд в make run

Цель run зависела только от backend, а статика фронтенда попадает в бинарник
через go:embed из backend/static, который обновляла лишь цель frontend. Поэтому
make run пересобирал Go-код со старым UI.

- run теперь зависит от frontend backend;
- frontend стала инкрементальной: npm ci только при изменении package.json/
  package-lock.json, npm run build и копирование в backend/static — только когда
  исходники или конфиги новее, чем backend/static/index.html (он же stamp);
- проверки вынесены в shell-recipe, т.к. имена SvelteKit-роутов вида (app)
  ломают разбор имён файлов в make.
This commit is contained in:
iu
2026-10-16 13:26:43 +03:00
parent 14db79632a
commit 28e3d4676f
2 changed files with 44 additions and 6 deletions
+6 -2
View File
@@ -125,7 +125,7 @@ make build # frontend -> backend/static -> go:embed -> bin/galo
Отдельные шаги:
```bash
make frontend # npm ci && npm run build, копирует статику в backend/static
make frontend # npm run build, копирует статику в backend/static (инкрементально)
make backend # CGO_ENABLED=0 go build -tags nodynamic -o bin/galo
```
@@ -133,6 +133,10 @@ make backend # CGO_ENABLED=0 go build -tags nodynamic -o bin/galo
> транспилированный в Go libwebp вместо динамической загрузки через purego,
> благодаря чему бинарник остаётся полностью статическим.
`make frontend` собирает только при изменении исходников `frontend/`; `npm ci`
запускается лишь когда менялись `package.json`/`package-lock.json`. `make run`
и `make build` учитывают это и не пересобирают неизменившийся фронтенд.
Проверка:
```bash
@@ -151,7 +155,7 @@ make migrate # go run ./cmd/migrate — применяет up-миграци
## Локальный запуск
```bash
make run # соберёт backend и запустит ./bin/galo
make run # доберёт изменившийся фронтенд, соберёт backend и запустит ./bin/galo
# или напрямую:
./bin/galo
```