02 — Vytvoření projektu
Výuka
Proč to existuje?
Vytvoření nového projektu "od nuly" je časově náročné — musíš nastavit build nástroje (webpack, babel), konfiguraci TypeScriptu, ESLint, strukturu složek, atd. To může zabrat hodiny nebo dny.
create-next-app je oficiální nástroj, který vyřeší vše za tebe — během 30 sekund máš funkční Next.js aplikaci s optimální konfigurací, připravenou k vývoji.
Jak to funguje?
create-next-app je CLI nástroj (příkazový řádek), který:
- Vytvoří novou složku s projektem
- Nainstaluje všechny potřebné závislosti (React, Next.js, atd.)
- Nastaví konfiguraci (TypeScript, ESLint podle volby)
- Vytvoří základní strukturu složek (
app/,public/, atd.) - Přidá příklady stránek, aby projekt fungoval hned po vytvoření
Co potřebuješ:
- Node.js (verze 18.17 nebo vyšší) — běhové prostředí pro JavaScript
- npm nebo pnpm nebo yarn — správce balíčků (instaluje se s Node.js)
K čemu to slouží?
- Rychlý start — projekt je hotový za minutu
- Osvědčená konfigurace — Next.js tým vyladil optimální nastavení
- Bez chyb — nemusíš řešit kompatibilitu verzí nebo chybějící závislosti
- TypeScript ready — přidáš
--typescripta máš TypeScript projekt
JavaScript
# Vytvoření projektu (interaktivní - doporučeno)
npx create-next-app@latest
# Nebo s názvem projektu přímo
npx create-next-app@latest my-app
# Přejdi do složky projektu
cd my-app
# Spusť development server
npm run dev
# nebo
pnpm dev
# nebo
yarn dev
Co se stane:
- Nástroj se zeptá na několik otázek (název, TypeScript?, ESLint?, Tailwind CSS?)
- Vytvoří složku s projektem
- Nainstaluje závislosti (může trvat 1-2 minuty)
- Zobrazí instrukce, jak spustit projekt
Výstup:
✔ What is your project named? … my-app
✔ Would you like to use TypeScript? … No
✔ Would you like to use ESLint? … Yes
✔ Would you like to use Tailwind CSS? … No
✔ Would you like to use `src/` directory? … No
✔ Would you like to use App Router? … Yes (recommended)
✔ Would you like to customize the default import alias (@/*)? … No
Creating a new Next.js app in /path/to/my-app...
TypeScript
# Vytvoření TypeScript projektu (interaktivní)
npx create-next-app@latest
# Vyber "Yes" na otázku "Would you like to use TypeScript?"
# Nebo přímo s flagy
npx create-next-app@latest my-app --typescript --eslint
# Přejdi do složky a spusť
cd my-app
pnpm dev
Co se přidá v TypeScript projektu:
tsconfig.json— konfigurace TypeScriptu- Všechny soubory mají příponu
.tsnebo.tsx - Typy pro Next.js komponenty a API
- Type checking během vývoje
Rozdíl JS vs TS
Hlavní rozdíl je v type safety (typová bezpečnost):
JavaScript:
- Rychlejší start pro začátečníky
- Méně boilerplate kódu
- Chyby se objeví až při běhu aplikace
TypeScript:
- Lepší IntelliSense (nápověda v editoru)
- Chyby se zachytí už při psaní kódu
- Refaktoring je bezpečnější
- Vyžaduje učení syntaxe typů
Doporučení: Pokud jsi začátečník, začni s JavaScriptem. Až budeš mít základy, přejdi na TypeScript.
Po vytvoření projektu
Struktura projektu
my-app/
├── app/ # Hlavní aplikační složka (App Router)
│ ├── layout.js # Root layout
│ ├── page.js # Domovská stránka (/)
│ └── globals.css # Globální CSS
├── public/ # Statické soubory (obrázky, favicon)
├── node_modules/ # Nainstalované závislosti
├── package.json # Seznam závislostí a skripty
├── next.config.js # Konfigurace Next.js
└── README.md # Dokumentace projektu
Dostupné příkazy
npm run dev # Spustí development server (http://localhost:3000)
npm run build # Vytvoří produkční build
npm run start # Spustí produkční server
npm run lint # Zkontroluje kód pomocí ESLint
Tip
- Interaktivní režim je nejlepší —
npx create-next-app@latestbez dalších parametrů tě provede všemi volbami - pnpm je rychlejší — pokud chceš ušetřit místo na disku a zrychlit instalaci, používej
pnpmmístonpm - ESLint doporučujeme — pomůže ti najít chyby v kódu
- App Router vs Pages Router — vždy vyber App Router (je novější a doporučený)
- První spuštění — po
npm run devotevři prohlížeč nahttp://localhost:3000
Řešení problémů
# Port 3000 je obsazený?
npm run dev -- -p 3001
# Chyba při instalaci?
rm -rf node_modules package-lock.json
npm install
# Node.js verze je stará?
node --version # Musí být 18.17 nebo vyšší
Kvíz
Co je hlavní výhoda použití create-next-app oproti ručnímu nastavení projektu?
create-next-app je "starter" nástroj, který ti ušetří hodiny práce tím, že vytvoří nový projekt s optimální konfigurací (webpack, babel, TypeScript, ESLint) a základní strukturou složek. Nemusíš ručně nastavovat build proces nebo řešit kompatibilitu balíčků — vše funguje hned po vytvoření projektu.
🎯 Závěrečný projekt
Po dokončení všech 8 dílů vytvoříte jednoduchou Todо aplikaci v čistém JavaScriptu. Naučíte se, jak aplikovat vše, co jste se naučili, na reálný projekt.
Zobrazit podrobnosti projektu →Informace o seriálu
Obtížnost
Délka
Cca 480 minut
Počet videí
8 videí + projekty
Certifikát
Po dokončení obdržíte certifikát
Lekce v této sekci
- 01 — Co je Next.js
- 02 — Vytvoření projektu
- 03 — Struktura projektu (app/)
- 04 — Page komponenty (page.js / page.tsx)
- 05 — Layout komponenty (layout.js / layout.tsx)
- 06 — File-based routing
- 07 — Dynamické routy ([id]/page.js)
- 08 — Link komponenta (navigace)
- 09 — Image komponenta (next/image)
- 10 — Metadata (title, description, Open Graph)
- 11 — Loading UI (loading.js / loading.tsx)
- 12 — Error handling (error.js / error.tsx)
- 13 — Not Found (not-found.js / not-found.tsx)
Struktura lekcí (souborový strom)
- 1.1 Úvod do JavaScriptu a TypeScriptu
- 1.2 Nastavení prostředí
- 1.3 První program
- 1.4 Proměnné: var, let, const
- 1.5 Datové typy - přehled
- 1.6 String (řetězce)
- 1.7 Number (čísla)
- 1.8 Boolean (pravda/nepravda)
- 1.9 Null a Undefined
- 1.10 Type Inference vs Annotations
- 1.11 Aritmetické operátory
- 1.12 Porovnávací operátory
- 1.13 Logické operátory
- 1.14 Komentáře
- 1.15 Console metody
- 03.01 Deklarace funkce
- 03.02 Function Expression
- 03.03 Arrow Functions
- 03.04 Parametry a argumenty
- 03.05 Return hodnoty
- 03.06 Výchozí parametry
- 03.07 Rest parametry
- 03.08 Co je Scope
- 03.09 Lexikální Scope
- 03.10 Řetězec Scope
- 03.11 Globální Scope
- 03.12 Životní Cyklus Proměnných
- 03.13 Omezení Scope
- 03.14 Použití Closures
- 03.15 Callback funkce
- 03.16 Higher-order Functions
- 03.17 IIFE
- 03.18 Void funkce
- 03.19 Rekurze
- v přípravě
- v přípravě
- v přípravě
- v přípravě
- 01 — Co je Next.js
- 02 — Vytvoření projektu
- 03 — Struktura projektu (app/)
- 04 — Page komponenty (page.js / page.tsx)
- 05 — Layout komponenty (layout.js / layout.tsx)
- 06 — File-based routing
- 07 — Dynamické routy ([id]/page.js)
- 08 — Link komponenta (navigace)
- 09 — Image komponenta (next/image)
- 10 — Metadata (title, description, Open Graph)
- 11 — Loading UI (loading.js / loading.tsx)
- 12 — Error handling (error.js / error.tsx)
- 13 — Not Found (not-found.js / not-found.tsx)
- v přípravě
- v přípravě
- v přípravě