Getting Started
Quick Start
Uruchom Nucleify, poznaj repozytorium i wprowadź pierwszą zmianę w mniej niż dziesięć minut.
1. Bootstrap
git clone https://github.com/Nucleify/Nucleify.git
cd Nucleify
make runUzupełnij wartości SUPABASE_* w root .env, jeśli planujesz wywoływać trasy API modułów.
2. Uruchom aplikację landingową
make webOtwórz http://localhost:3000/en/home.
Źródło landingu jest w web/src/pages/home/ — sekcje złożone przez web/src/pages/home/index.vue. Trasy to cienkie wrappery pod web/src/pages/[lang]/:
<!-- web/src/pages/[lang]/home.vue -->
<script setup lang="ts">
import NucHomePage from '../home/index.vue'
</script>
<template><NucHomePage /></template>3. Zrozum przepływ żądania
Przeglądarka → strona Nuxt (web/src/pages/)
→ shared_modules/nuc_*/utils/ (composables, klient API)
→ /api/* (bramka Nitro)
→ nuc_*/supabase/api/handle.ts (handlery modułów)
→ Supabase (PostgreSQL, Auth, Edge Functions)Smoke-test bramki:
curl http://localhost:3000/api
curl http://localhost:3000/api/test4. Zaimportuj moduł współdzielony
Moduły rozwiązują się przez alias modules (web/.config/nuxt/structure.ts → shared_modules/):
import { useDarkMode } from 'modules/nuc_dark_mode/utils/use_dark_mode'
import { apiRequest } from 'modules/nuc_api/utils/api_request'Cztery moduły rejestrują się automatycznie przy starcie aplikacji w web/src/plugins/modules.ts:
nuc_globalsnuc_colorsnuc_dark_modenuc_languages
nuc_api i nuc_stores importujesz tam, gdzie są potrzebne — bez globalnej rejestracji pluginu.
5. Wypróbuj kompilator
Zbuduj emisję przenośną z dowolnych *.nuc.tsx pod korzeniami odkrywania (web/, admin/, shared_modules/, portable/):
pnpm compiler:build
pnpm compiler:check # exit 1, jeśli emit jest brudny względem autorstwaSkonwertuj cały produkt web na Next (Tryb B):
make web TARGET=nextTo uruchamia pnpm compiler -- convert web --target=next, buduje, instaluje i startuje web-next/.
6. Uruchom inne aplikacje
make admin # admin Nuxt w admin/src/pages/
make docs # docs Astro na http://localhost:4321 (domyślny port Astro)Treść docs to Markdown w docs/content/{en,pl}/{category}/{slug}.md.
7. Uruchom sprawdzenia
Przed commitem hook Husky pre-commit uruchamia ten sam zestaw co CI (pre-push jest no-op):
pnpm btest # suite bash
pnpm check # Biome
pnpm typeslint # TypeScript (web)
pnpm slint # Stylelint (SCSS)
pnpm build # produkcyjny build Nuxt
pnpm tests # Vitest (web + shared)
pnpm compiler:test # testy jednostkowe kompilatora
pnpm compiler:check # odciski emitTypowe zadania
Dodaj trasę API do istniejącego modułu
- Dodaj handlery w
shared_modules/nuc_example/supabase/api/example_handlers.ts - Wyeksportuj
handleExampleApizhandle.ts - Zarejestruj handler w
shared_modules/nuc_api/supabase/api/gateway_dispatch.ts - Wywołuj
/api/example/...z klienta przez helpery requestównuc_api
Nadpisz plik bez edycji upstream
Odwzoruj ścieżkę pod overrides/:
web/src/composables/useAuth.ts
→ overrides/web/src/composables/useAuth.tsZobacz Nadpisywanie.
Autorsuj komponent przenośny
Utwórz Foo.nuc.tsx obok miejsca użycia. Uruchom pnpm compiler:build. Commituj .nuc.tsx i wygenerowane siblingi. Nie edytuj ręcznie .vue/.tsx jako źródła prawdy — użyj pnpm compiler -- import, jeśli edytowałeś emit.
Co dalej
| Temat | Doc |
|---|---|
| Mapa katalogów | Układ monorepo |
| Anatomia modułu | Moduły |
| Cykle kompilatora | Kompilator |
| Konfiguracja Nuxt | Web & Admin |
| Workflow Supabase | Supabase |
| Testy | Vitest |