Przegląd

Next.js to framework Reacta dla zastosowań produkcyjnych. Oferuje hybrydowe renderowanie statyczne i serwerowe, wsparcie dla TypeScript, inteligentne pakowanie, prefetching tras i wiele więcej, bez żadnej konfiguracji.

Zanim zaczniesz
Upewnij się, że masz otwarty pulpit – będą ci potrzebne wyświetlone tam dane logowania do Git. Ten szablon zawiera Next.js 15, React 19, Tailwind CSS 4, Turbopack oraz next-auth.

Pierwsze kroki

1

Utwórz repozytorium z szablonu

Na pulpicie przejdź do zakładki Tools & Deployment. Kliknij przycisk "New Repository", wybierz szablon Next.js z listy rozwijanej, wpisz nazwę repozytorium i subdomenę, a następnie kliknij "Create Repository".

2

Sklonuj repozytorium

git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
3

Zainstaluj zależności

npm install
4

Uruchom serwer deweloperski

npm run dev

Otwórz http://localhost:4200 w przeglądarce.

5

Zbuduj i wypchnij zmiany

npm run build
git add .
git commit -m "Initial setup"
git push origin main
Każde wypchnięcie do Git automatycznie wdraża twoją aplikację. Sprawdź adres Module Work URL na pulpicie, aby zobaczyć działającą stronę.

Lokalny rozwój z Dockerem

Jeśli nie masz lokalnie zainstalowanego Node.js, możesz użyć Dockera do uruchamiania komend Next.js.

Czym jest Docker?
Docker tworzy izolowane "kontenery" zawierające całe potrzebne oprogramowanie (Node.js, npm) bez instalowania go na twoim komputerze.

Uruchamianie komend z Dockerem

# Uruchom npm install
docker run --rm -v $(pwd):/app -w /app node:lts-alpine npm install

# Uruchom serwer deweloperski
docker run --rm -v $(pwd):/app -w /app -p 4200:4200 node:lts-alpine npm run dev

# Zbuduj wersję produkcyjną
docker run --rm -v $(pwd):/app -w /app node:lts-alpine npm run build

Struktura projektu

├── app/                      # App Router (Next.js 13+)
│   ├── layout.js             # Layout główny
│   ├── page.js               # Strona główna
│   ├── api/                  # Trasy API
│   └── [routes]/             # Trasy dynamiczne
├── public/                   # Pliki statyczne
├── components/               # Komponenty React
├── styles/                   # Pliki CSS
├── next.config.js            # Konfiguracja Next.js
├── package.json              # Zależności
└── Dockerfile                # Konfiguracja Docker
        

Typowe zadania

Tworzenie strony

Utwórz pliki w katalogu app/:

// app/about/page.js
export default function AboutPage() {
  return <h1>About Us</h1>;
}

Tworzenie trasy API

// app/api/users/route.js
export async function GET() {
  return Response.json({ users: [] });
}

export async function POST(request) {
  const data = await request.json();
  return Response.json({ created: data });
}

Komponenty serwerowe vs klienckie

// Server Component (domyślnie) – działa na serwerze
export default async function Page() {
  const data = await fetch('https://api.example.com');
  return <div>{data}</div>;
}

// Client Component – dodaj dyrektywę 'use client'
'use client';
import { useState } from 'react';
export default function Counter() {
  const [count, setCount] = useState(0);
  return <button onClick={() => setCount(count + 1)}>{count}</button>;
}

Przydatne komendy

npm run dev Uruchom serwer dev z Turbopack
npm run build Utwórz build produkcyjny
npm start Uruchom serwer produkcyjny
npm run lint Uruchom ESLint

Rozwiązywanie problemów

Błędy hydration mismatch

Rozwiązanie: Upewnij się, że serwer i klient renderują tę samą zawartość. Użyj 'use client' dla komponentów interaktywnych.

useState nie działa

Rozwiązanie: Dodaj 'use client' na początku pliku. Server Components nie mogą używać hooków.

Build kończy się błędem po wdrożeniu

Rozwiązanie: Najpierw uruchom npm run build lokalnie, aby sprawdzić błędy przed wypchnięciem zmian.

Proces wdrażania

Zmiana kodu git push npm run build Live!
Aby uzyskać więcej informacji, odwiedź oficjalną Dokumentację Next.js.