Jump to content

Struktura projektu

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 API routeÔÇÖy aplikacji Next.js. Plik examples.ts zawiera przyk┼éad takiego routeÔÇÖa korzystaj─ůcego z funkcji Next.js API routeÔćŚ oraz z Prismy. Plik restricted.ts zawiera przyk┼éad routeÔÇÖa korzystaj─ůcego z funkcji Next.js API routeÔćŚ i jest on chroniony (ÔÇťauthenticatedÔÇŁ) poprzez NextAuth.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

Zawiera narz─Ödzia do uwierzytelniania, takie jak pobieranie 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:

  1. Definiujemy kontekst u┼╝ywany w zapytaniach tRPC. Po wi─Öcej informacji, zobacz korzystanie z tRPC.
  2. 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/types

Folder types jest u┼╝ywany do przechowywania typ├│w oraz ich deklaracji.

src/types/next-auth.d.ts

Plik next-auth.d.ts jest u┼╝ywany do poszerzenia domy┼Ťlnego typu sesji NextAuth.js. Dodaje on ID u┼╝ytkownika. Po wi─Öcej informacji, zobacz korzystanie z NextAuth.js.

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.cjs

Plik prettier.config.cjs 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.


Recent Contributors To This Page