Next.js 14 menjadi standar de‑facto untuk aplikasi React modern. Tutorial ini mengajarkan instalasi, konfigurasi, contoh kode, serta best practice agar proyek Anda siap produksi dalam hitungan menit.
1. Prasyarat
Pastikan Anda memiliki:
- Node.js v20.12+ (unduh di nodejs.org)
- Git
- Akun Vercel (opsional untuk deploy langsung)
- Editor kode, misalnya VS Code dengan ekstensi
ESLintdanPrettier
2. Instalasi Next.js 14
Buka terminal, buat folder proyek, lalu jalankan perintah berikut:
mkdir my-next14-app && cd my-next14-app
npx create-next-app@latest . --ts --app-dir --eslint --src-dir
Parameter yang dipakai:
--ts: mengaktifkan TypeScript--app-dir: men‑enable App Router (folderapp/)--src-dir: struktursrc/untuk pemisahan jelas--eslint: konfigurasi linting standar
Setelah selesai, instalasi Turbopack (bundler default di Next.js 14) sudah otomatis ter‑aktifkan.
3. Struktur Proyek Baru
my-next14-app/
├─ src/
│ ├─ app/ # App Router
│ │ ├─ layout.tsx # Root layout
│ │ ├─ page.tsx # Halaman utama
│ │ └─ dashboard/
│ │ └─ page.tsx
│ ├─ components/ # Komponen UI
│ └─ lib/ # Helper / API client
├─ public/ # Asset static
├─ next.config.mjs # Konfigurasi Next.js
├─ tsconfig.json
└─ package.json
4. Konfigurasi Dasar di next.config.mjs
import { defineConfig } from 'next';
export default defineConfig({
// Aktifkan React Server Components otomatis
experimental: {
reactRoot: true,
serverActions: true,
},
// Optimasi gambar built‑in
images: {
remotePatterns: [{ protocol: 'https', hostname: '**' }],
},
// Pengaturan linting TypeScript
typescript: { ignoreBuildErrors: false },
// Turbopack custom caching (opsional)
cache: {
maxAge: 31536000,
},
});
Konfigurasi ini mengaktifkan fitur eksperimental React 18+ yang sudah stabil di Next.js 14, serta menyiapkan kebijakan caching untuk asset statis.
5. Membuat Layout Global
File src/app/layout.tsx menjadi kerangka utama aplikasi.
import './globals.css';
import type { Metadata } from 'next';
export const metadata: Metadata = {
title: 'My Next.js 14 App',
description: 'Demo Next.js 14 dengan App Router & Turbopack',
};
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
{children}
);
}
Gunakan Tailwind CSS (opsional) dengan menambahkan tailwindcss melalui npm i -D tailwindcss postcss autoprefixer dan jalankan npx tailwindcss init -p. Sesuaikan tailwind.config.ts agar ./src/**/*.{js,ts,jsx,tsx} ter‑scan.
6. Membuat Halaman Dashboard dengan Server Component
// src/app/dashboard/page.tsx
import Card from '@/components/Card';
import { getStats } from '@/lib/api';
export const revalidate = 60; // ISR tiap 60 detik
export default async function DashboardPage() {
const stats = await getStats(); // fetch di server side
return (
{stats.map((s) => (
))}
);
}
Penjelasan:
- Fungsi
asyncmenandakan ini adalah Server Component, sehingga data di‑fetch sebelum HTML dikirim ke klien. - Properti
revalidatemengaktifkan Incremental Static Regeneration (ISR) untuk memperbarui cache tiap menit.
7. Membuat Helper API di src/lib/api.ts
import type { Stat } from '@/types';
export async function getStats(): Promise<Stat[]> {
const res = await fetch('https://api.example.com/v1/stats', {
next: { revalidate: 60 }, // ISR cache control
headers: { 'Accept': 'application/json' },
});
if (!res.ok) throw new Error('Failed to fetch stats');
return res.json();
}
Dengan opsi next: { revalidate }, Next.js meng‑cache respons di edge secara otomatis.
8. Menambahkan Linting & Formatting CI
Instal ESLint + Prettier (jika belum ada):
npm i -D eslint prettier eslint-config-prettier eslint-plugin-react eslint-plugin-react-hooks
Tambahkan script di package.json:
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "eslint . --ext .js,.ts,.tsx",
"format": "prettier --write ."
}
Untuk CI, buat file .github/workflows/ci.yml:
name: CI
on: [push, pull_request]
jobs:
lint-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm run lint
- run: npm run build
9. Optimasi Performa dengan Image Component dan Font Optimization
Gunakan next/image untuk gambar responsif:
import Image from 'next/image';
Untuk font, tambahkan di next.config.mjs:
experimental: { optimizeFonts: true },
10. Deploy ke Vercel
- Push repositori ke GitHub.
- Buka vercel.com, klik New Project dan pilih repository.
- Vercel otomatis mendeteksi
next.config.mjsdan meng‑install dependensi. - Set environment variable
NEXT_PUBLIC_API_URLjika diperlukan. - Deploy selesai – URL publik tersedia dalam hitungan menit.
Jika ingin men‑enable preview branches, aktifkan Git Integration** pada dashboard Vercel.
11. Best Practice untuk Produksi
- Static Generation (SSG) untuk konten yang tidak berubah cepat; gunakan
export const dynamic = 'force-static';bila perlu. - Server‑Side Rendering (SSR) hanya untuk data yang harus fresh per‑request.
- Gunakan
next/fontuntuk self‑hosting font, hindari CDN eksternal yang menambah latency. - Selalu cek bundle size dengan
next build --profiledan optimalkan denganimport()(code‑splitting). - Integrasikan Sentry atau LogRocket untuk monitoring runtime error.
12. Debugging di Development Mode
Next.js 14 menambahkan Fast Refresh yang memuat ulang modul tanpa kehilangan state. Untuk debugging server side, jalankan:
npm run dev
# kemudian buka Chrome DevTools → Sources → Node.js
Gunakan console.log normal atau debugger; di dalam Server Component; Next akan menampilkan output di terminal.
13. Ringkasan Langkah
- Install Node.js v20+, buat proyek dengan
create-next-app+--app-dir. - Konfigurasi
next.config.mjs(experimental, images, cache). - Buat layout global & halaman menggunakan Server Component.
- Implementasikan data fetching dengan
fetch+ ISR. - Tambahkan linting, format, dan CI GitHub Actions.
- Optimasi gambar, font, dan bundle size.
- Deploy ke Vercel, atur variabel lingkungan.
- Ikuti best practice security & performance.
Next.js 14 menawarkan developer React sebuah toolbox lengkap—App Router, Turbopack, built‑in image & font optimization, serta integrasi CI/CD yang mulus. Dengan mengikuti langkah‑langkah di atas, Anda dapat membangun aplikasi web yang cepat, scalable, dan siap produksi hanya dalam satu hari. Selalu perbarui dependensi ke versi terbaru, monitor performa di Vercel, dan terapkan best practice security untuk memastikan proyek Anda tetap relevan di tahun 2026.
Panduan step‑by‑step setup Next.js 14 dengan App Router, Turbopack, konfigurasi linting, CI, dan deployment ke Vercel. Tutorial lengkap untuk developer Programming, Software Engineering, dan Web Development tahun 2026.
Programming,Software Engineering,Web Development,Next.js 14,App Router,Turbopack,Vercel
#Programming #SoftwareEngineering #WebDev #Tech #Coding
0 Komentar