4140847a15
Коммитим internal/web/dist/index.html как минимальный плейсхолдер, чтобы //go:embed all:dist находил совпадения на чистом клоне без npm/`make web` (CRITICAL: go build ./... падал с "pattern all:dist: no matching files found"). .gitignore теперь игнорирует только реальные build-ассеты (internal/web/dist/* кроме index.html); `make web` перезаписывает плейсхолдер настоящей сборкой. Также чинит MEDIUM: голый /api (без хвостового слэша) уходил в SPA-fallback вместо API-роутера — вынесен isAPIPath() с явной проверкой path == "/api", покрыт TestIsAPIPath. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BwxdSt4reTm7Dj1oxRvpP3
18 lines
474 B
Plaintext
18 lines
474 B
Plaintext
# deps & build
|
|
/node_modules/
|
|
/bin/
|
|
*.env
|
|
.env
|
|
|
|
# web (Vite frontend)
|
|
web/node_modules/
|
|
web/dist/
|
|
|
|
# internal/web/dist: real build output is generated by `make web` and
|
|
# gitignored, EXCEPT index.html — a minimal placeholder is committed so
|
|
# `go build ./...` (which //go:embed all:dist needs) works on a clean
|
|
# clone without npm/CI web-build step. `make web` overwrites the
|
|
# placeholder with the real built index.html.
|
|
internal/web/dist/*
|
|
!internal/web/dist/index.html
|