| title | Struktura projektu (App) |
|---|---|
| description | Struktura projektu nowo utworzonej aplikacji T3 |
| layout | ../../layouts/docs.astro |
| lang | pl |
| isMdx | true |
import Diagram from "../../components/docs/folderStructureDiagramApp.astro"; import Form from "../../components/docs/folderStructureForm.astro";
Wybierz paczkę, aby zobaczyć strukture folderów nowo utworzonej z nią aplikacji. Poniżej znajdziesz opis każdego elementu.
Folder prisma zawiera plik schema.prisma, który używany jest do konfiguracji połączenia z bazą danych i struktury tej bazy. Jest to także miejsce, w którym przechowywać można pliki migracji i/lub skrypty "seedowania" (jeżeli z nich korzystasz). Po więcej informacji, zobacz korzystanie z Prismy.
Folder public zawiera zasoby statyczne, które "serwowane" są przez serwer webowy. Plik favicon.ico jest przykładem jednego z takich zasobów.
Używany do walidacji zmiennych środowiskowych i definiowania ich typów - zobacz zmienne środowiskowe.
Folder app zawiera wszystkie strony aplikacji Next.js. Plik page.tsx w głównym folderze /app to strona główna twojej aplikacji. Plik layout.tsx jest używany do "zawinięcia" aplikacji w "providery". Po więcej informacji zobacz dokumentację Next.js
Plik post.tsx jest przykładem komponentu klienta, który wykonuje mutacje TRPC.
Plik [...nextauth]/route.ts`jest slug routem używanym do uwierzytelniania ("authentication") poprzez NextAuth.js. Pomaga on przetwarzać zapytania o uwierzytelnianie. Po więcej informacji o kolejno NextAuth.js i slug route'ach, zobacz korzystanie z NextAuth.js oraz dokumentację dynamicznych route'ów Next.js.
Plik route.ts to punkt wejścia dla API (tRPC). Pomaga on przetwarzać zapytania wykonane z tRPC. Po więcej informacji o kolejno tRPC i slug route'ach, zobacz korzystanie z tRPC oraz dokumentację punktów wejścia API.
Folder server używany jest do stworzenia wyraźnego podziału między kodem działającym na serwerze, a tym po stronie klienta.
Jest to główny punkt wejścia dla systemu uwierzytelniania po stronie serwera. Ustawiamy tutaj opcje konfiguracji, dostosowujemy model użytkownika oraz zapewniamy narzędzia DX dla uwierzytelniania, takie jak funkcja pobierania sesji użytkownika po stronie serwera. Po więcej informacji, zobacz korzystanie z NextAuth.js.
Plik db.ts jest używany do tworzenia instancji klienta Prismy z globalnym zakresie. Po więcej informacji, zobacz korzystanie z Prismy oraz polecane korzystanie z Prismy wraz z Next.js.
Folder db zawiera wszystkie schematy klientu Drizzle. Należy pamiętać że drizzle potrzebuje pliku drizzle.config.ts (Zobacz poniżej)
Plik index.ts jest używany do tworzenia instancji klienta Drizzle w globalnym zakresie. Po więcej informacji, zobacz korzystanie z Prismy oraz polecane korzystanie z Drizzle wraz z Next.js.
Plik schema.ts jest używany do konfiguracji połączenia z bazą danych i struktury tej bazy Zobacz oraz polecane korzystanie z Drizzle wraz z Next.js.
Plik example.ts zawiera przykład routera tRPC wykorzystującego funkcję pomocniczą publicProcedure do zaprezentowania, jak stworzyć publiczny route tRPC.
Zależnie od wybranych paczek, router ten zawiera więcej lub mniej route'ów, aby najlepiej zaprezentować jego sposób użycia.
Plik trpc.ts jest głównym plikiem konfiguracyjnym dla tRPC po stronie serwera. W pliku tym:
- Definiujemy kontekst używany w zapytaniach tRPC. Po więcej informacji, zobacz korzystanie z tRPC.
- Eksportujemy funkcje pomocnicze helperów. Po więcej informacji, zobacz korzystanie z tRPC.
Plik root.ts jest używany do scalenia routerów tRPC i eksportowania ich jako pojedynczego routera, a także eksportowania jego definicji typów. Po więcej informacji, zobacz korzystanie z tRPC.
Folder trpc zawiera pliki pozwalające na wykonywanie procedur TPRC z komponentow po stronie serwera i klienta
Plik query-client.ts tworzy Query Clienta, którego TPRC używa do cache'owania i deduplikacji danych w komponentach po stronie klienta.
Plik react.tsx jest punktem wejścia dla trpc od strony klienta. Zawiera on też typy dla inputu i outputu rutera. Po więcej inforamcji, zobacz korzystanie z trpc.
Plik server.ts jest punktem wejściowym dla tprc w komponentach po stronie serwera.
Plik .env jest używany do przechowywania zmiennych środowiskowych. Po więcej informacji, zobacz Zmienne Środowiskowe. Plik ten nie powinien być commitowany do historii gita.
Plik .env.example pokazuje przykładowe zmienne środowiskowe bazując na wybranych bibliotekach. Plik ten powinien być commitowany do historii gita.
Plik .eslintrc.cjs jest używany do konfigurowania ESLinta. Po więcej informacji, zobacz dokumentację ESLinta.
Plik db.sqlite zawiera baze danych do "developmentu". Ten plik jest tworzony po wykonaniu komendy db:push, i jest ignorowany przez git.
Plik drizzle.config.ts jest używany do konfigurowania Drizzle kit. Po więcej informacji przeczytaj ich dokumentację
Plik next-env.d.ts gwarantuje korzystanie z typów Next.jsa przez kompilator TypeScripta. Nie powinieneś go usuwać ani modyfikować, ponieważ może on zmienić się w każdym momencie. Po więcej informacji, zobacz dokumentację Next.js.
Plik next.config.mjs jest używany do konfigurowania Next.js. Po więcej informacji, zobacz dokumentację Next.js. Uwaga: Rozszerzenie .mjs pozwala korzystać z importów ESM.
Plik postcss.config.cjs jest używany przez Tailwind PostCSS. Po więcej informacji, zobacz dokumentację Tailwind PostCSS.
Plik prettier.config.mjs jest używany do konfigurowania Prettiera. Dołącza on plugin prettier-plugin-tailwindcss formatujący klasy CSS Tailwinda. Po więcej informacji, zobacz post na blogu Tailwind CSS.
Plik start-database.sh jest używany do uruchomienia bazy danych. Zobacz komentarze w pliku po informacje jak uruchomić baze danych na twoim systemie operacyjnym.
Plik tsconfig.json jest używany do konfigurowania TypeScripta. Niektóre ustawienia zostały włączone (takie jak strict mode), aby zapewnić najlepsze użycie TypeScripta do Create T3 App i jej bibliotek. Po więcej informacji, zobacz dokumentację TypeScripta albo korzystanie z TypeScripta.