5.7 KiB
Quick Start
Tento dokument je rychly start po vytvoreni projektu z template.
Ak nechces citat celu dokumentaciu, chod podla tychto krokov.
1. Spusti Projekt
corepack enable
pnpm install
pnpm dev
Poznamka:
- projekt ocakava Node
^22.12.0 || >=24
Ak chces rovno pripravit release image namiesto lokalneho dev servera:
docker build -t nuxt-workspace-template:latest .
docker run --rm -p 3000:3000 nuxt-workspace-template:latest
Potom otvor http://localhost:3000.
Poznamka:
- runtime image je distroless Node 24 image urceny pre release a deploy
Co Spravit Hned Po Spusteni
Po tom, co aplikacia bezi, urob aspon tieto zakladne kroky:
- vytvor
.envz.env.examplea nastav minimalne API a auth hodnoty - uprav branding v
package.json,nuxt.config.tsa textoch vi18n/locales - rozhodni auth mod:
disabled,mockalebouserinfo - rozhodni, ci pojdes cez vlastne wrappery v
api/wrappers, alebo cez OpenAPI codegen - nahrad demo obsah v
app/pages/index.vueprvou realnou obrazovkou alebo dashboardom - skontroluj globalne styly v
app/assets/styles - pred vacsou zmenou pust
pnpm lint,pnpm typecheck,pnpm test:runapnpm build
Kde to najdes podrobne:
.enva runtime config: nizsie v tomto dokumente a vprograming_guide.md- branding a preklady: sekcia
Uprav Branding - auth: sekcia
Rozhodni Sa O Auth - API a OpenAPI: sekcia
Rozhodni Sa O API Integracii - prva feature: sekcia
Vytvor Prvu Feature
2. Vytvor .env
Skopiruj .env.example do .env a uprav hodnoty podla projektu.
Minimalny start:
NUXT_PUBLIC_API_BASE_URL=/api
NUXT_PUBLIC_API_TIMEOUT_MS=10000
NUXT_PUBLIC_AUTH_MODE=disabled
Ak chces lokalny mock auth:
NUXT_PUBLIC_AUTH_MODE=mock
3. Uprav Branding
Najcastejsie prve zmeny:
- nazov projektu v
package.json - title a meta v
nuxt.config.ts - texty v
i18n/locales/sk.json - texty v
i18n/locales/en.json - obsah domovskej stranky v
app/pages/index.vue
Odporucanie:
- nenechaj template texty v produkcnom projekte
4. Rozhodni Sa O Auth
Template podporuje volitelny auth skeleton.
Moznosti:
disabledpouzi, ak aplikacia auth nepotrebujemockpouzi pri lokalnom vyvoji bez realneho prihlaseniauserinfopouzi, ak backend alebo proxy vracia user info endpoint
Priklad ochrany route:
definePageMeta({
requiresAuth: true
})
Priklad s rolou:
definePageMeta({
requiresAuth: true,
roles: ['ADMIN']
})
5. Rozhodni Sa O API Integracii
Mas 2 hlavne cesty:
- bez OpenAPI
pouzivaj
useApi()a doplnaj vlastne wrappery doapi/wrappers - s OpenAPI
nahraj specifikaciu do
openapi-speca vygeneruj klienta
Priklad pouzitia API:
const api = useApi()
const health = await api.example.getHealth()
Ak mas OpenAPI:
- nahrad
openapi-spec/example-api.yaml - uprav
openapi-ts.config.ts - spusti:
pnpm generate:api
Poznamka:
- generator bezi cez
@hey-api/openapi-ts, takze netreba Javu
6. Stavaj UI S Nuxt UI
Template pouziva Nuxt UI ako predvolenu komponentovu vrstvu.
Pouzivaj najma:
UButtonUCardUInputUSelectUFormFieldUAlert
Priklad:
<template>
<UCard>
<template #header>
<h2>Nova stranka</h2>
</template>
<UFormField label="Nazov">
<UInput v-model="name" />
</UFormField>
<UButton>Ulozit</UButton>
</UCard>
</template>
<script setup lang="ts">
const name = ref('')
</script>
Odporucanie:
- nebuduj novu vrstvu
BaseButton,BaseInput,BaseCard, ak na to nie je silny dovod
7. Pouzivaj Pinia Len Na Zdielany Stav
Pripravene store-y:
useAuthStore()useUiStore()
Pouzivaj ich na:
- user/session stav
- loading
- notifikacie
Nepouzivaj ich na:
- kazdy maly lokalny input
- docasny stav jedneho formulara, ak ho nepotrebuje viac casti appky
Priklad:
const uiStore = useUiStore()
uiStore.pushNotification({
title: 'Ulozene',
message: 'Operacia prebehla uspesne.',
tone: 'success'
})
8. Vytvor Prvu Feature
Odporucany postup pri novej feature:
- vytvor route v
app/pages - vytvor alebo dopln API wrapper v
api/wrappers - ak treba, vytvor store v
app/stores - dopln preklady do
i18n/locales - postav UI pomocou Nuxt UI
Priklad:
app/pages/users/list.vueapi/wrappers/users.tsapp/stores/users.ts
9. Over Kvalitu
Pred vacsou zmenou alebo commitom pustaj:
pnpm lint
pnpm typecheck
pnpm test:run
pnpm build
Ak menis formatovanie:
pnpm format:fix
Template uz obsahuje automaticke testy pre:
authauistore-y- auth plugin a auth middleware
- API wrapper a API plugin
- logger plugin a
useLogger() - konzistenciu i18n klucov
Ak chces rychly smoke check len pre testovaciu kostru template-u, pouzi:
pnpm vitest run tests/auth.plugin.spec.ts tests/auth.middleware.spec.ts tests/i18n.locales.spec.ts tests/api.plugin.spec.ts tests/logger.plugin.spec.ts tests/use-logger.spec.ts
Poznamka:
- Vitest aliasy pre Nuxt importy su nastavene vo
vitest.config.ts
10. Co Zmenit Ako Prve V Realnom Projekte
Najcastejsie prve upravy:
- branding a preklady
- title a meta udaje
.envkonfiguracia- auth mod
- API base URL
- vlastna domovska stranka
- prvy realny API wrapper
- prva chranena route, ak treba auth
Odporucane Minimalne Rozhodnutia Na Start
Predtym, nez zacnes feature vyvoj, rozhodni aspon toto:
- bude auth
disabled,mockalebouserinfo? - bude FE/BE kontrakt rieseny cez OpenAPI?
- budete generovat klientov do
openapi-client? - budete drzat globalny stav v Pinia store-och?
- zostavate pri Nuxt UI ako hlavnej UI vrstve?
Ked Chces Ist Dalej
Podrobnejsi popis najdes v:
readme.mdprograming_guide.mdopenapi-spec/README.md