Struktura projektu (Pages)
Wybierz paczkę, aby zobaczyć strukturę folderów nowo utworzonej z nią aplikacji. Poniżej znajdziesz opis każdego elementu.
prisma
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.
public
Folder public
zawiera zasoby statyczne, które “serwowane” są przez serwer webowy. Plik favicon.ico
jest przykładem jednego z takich zasobów.
src/env
Używany do walidacji zmiennych środowiskowych i definiowania ich typów - zobacz zmienne środowiskowe.
src/pages
Folder pages
zawiera wszystkie strony aplikacji Next.js. Plik index.tsx
w głównym folderze zawierającym folder /pages
to strona główna twojej aplikacji. Plik _app.tsx
dostarcza aplikacji odpowiednie “providery”. Po więcej informacji, zobacz dokumentację Next.js↗.
src/pages/api
Folder api
zawiera wszystkie route’y twojej aplikacji Next.js. Po więcej informacji o api route’ach, zobacz ich dokumentację od Next.js↗.
src/pages/api/auth/[...nextauth].ts
Plik [...nextauth].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↗.
src/pages/api/trpc/[trpc].ts
Plik [trpc].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ę dynamicznych route’ów Next.js↗.
src/server
Folder server
używany jest do stworzenia wyraźnego podziału między kodem działającym na serwerze, a tym po stronie klienta.
src/server/auth.ts
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.
src/server/db.ts
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↗.
src/server/api
Folder api
zawiera kod tRPC po stronie serwera.
src/server/api/routers
Folder routers
zawiera wszystkie “sub-routery” tRPC.
src/server/api/routers/example.ts
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.
src/server/api/trpc.ts
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.
src/server/api/root.ts
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.
src/styles
Folder styles
zawiera globalne style aplikacji.
src/utils
Folder utils
jest używany do przechowywania często powielanych funkcji pomocniczych.
src/utils/api.ts
Plik api.ts
to plik wejścia tRPC od strony klienta. Po więcej informacji, zobacz korzystanie z tRPC.
.env
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.
.env.example
Plik .env.example
pokazuje przykładowe zmienne środowiskowe bazując na wybranych bibliotekach. Plik ten powinien być commitowany do historii gita.
.eslintrc.cjs
Plik .eslintrc.cjs
jest używany do konfigurowania ESLinta. Po więcej informacji, zobacz dokumentację ESLinta↗.
next-env.d.ts
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↗.
next.config.mjs
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.
postcss.config.cjs
Plik postcss.config.cjs
jest używany przez Tailwind PostCSS. Po więcej informacji, zobacz dokumentację Tailwind PostCSS↗.
prettier.config.mjs
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↗.
tsconfig.json
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.
drizzle.config.ts
Plik drizzle.config.ts
jest używany do konfigurowania Drizzle kit. Po więcej informacji przeczytaj ich dokumentację↗