Installera Next.js och publicera
Vi går steg för steg igenom hur du skapar ett Next.js-projekt med create-next-app, App Router-mappstrukturen och hur du publicerar projektet på Vercel eller på din egen server.

För Next.js-installationen installerar du först den aktuella LTS-versionen av Node.js och kör sedan kommandot npx create-next-app@latest i terminalen. Guiden frågar efter TypeScript, ESLint, Tailwind CSS och App Router. Du går in i projektmappen och startar utvecklingsservern med npm run dev; sajten öppnas på localhost:3000, och för publicering används npm run build.
Vad är Next.js och vem bör använda det?
Next.js är ett ramverk för webbapplikationer byggt på React. Medan React bara ritar gränssnittskomponenter levererar Next.js färdigt det som behövs, som routing, sidgenerering på serversidan, statiska sidor, bildoptimering och API-endpoints.
Den största skillnaden är att det kan generera sidor som HTML på servern. Sökmotorer och förhandsvisningar i sociala medier ser innehållet direkt och den första laddningen går snabbare. Därför passar det bättre än ensidiga applikationer för innehållstunga företagssajter, kataloger och bloggsidor.
Bygger du bara en adminpanel som kräver inloggning kan en enklare struktur räcka; för det scenariot, se vår guide installera React med Vite.
Förutsättningar
Next.js är kräsen med vilka Node.js-versioner det stöder och släpper stödet för äldre Node i nya huvudversioner. Därför är det smidigast att installera den aktuella LTS-versionen från nodejs.org.
- Aktuell LTS-version av Node.js och npm (följer med Node); pnpm, yarn eller bun kan också användas.
- En kodeditor; för installation med rekommenderade tillägg, se artikeln installera VS Code.
- Git och ett fjärrarkiv (GitHub, GitLab): publiceringsprocesser matas oftast från arkivet.
- En Linux-server med SSH-åtkomst om du ska installera på din egen server.
Installera och verifiera Node.js
Installationen av Node.js skiljer sig något mellan operativsystem; Next.js-kommandona är däremot desamma överallt efter installationen.
Windows
Ladda ner LTS-installationsfilen från nodejs.org eller använd winget; öppna sedan terminalen på nytt.
winget install OpenJS.NodeJS.LTS
node -vmacOS
Du kan installera med det officiella paketet eller Homebrew.
brew install node
node -vLinux
Versionen i distributionens arkiv kan vara gammal; det är säkrare att installera med nvm.
nvm install --lts
nvm use --lts
node -vSkapa projektet med create-next-app
Guiden create next app är det officiella startverktyget och installerar alla nödvändiga paket på en gång. När du kör kommandot får du frågor om projektnamn och några alternativ; är du osäker är det en bra början att godta de rekommenderade standardvalen.
| Fråga | Rekommendation |
|---|---|
| TypeScript | Ja; fångar fel medan du skriver |
| ESLint | Ja; för kodkvaliteten |
| Tailwind CSS | Beror på preferens; välj efter ditt designsystem |
| src/-mappen | Beror på preferens; skiljer konfigurationsfilerna från koden |
| App Router | Ja; den rekommenderade strukturen för nya projekt |
| Import alias | Standardvärdet @/* räcker |
npx create-next-app@latest benim-sitem
cd benim-sitem
npm run devFörstå App Router-strukturen
Next.js App Router skapar routingen utifrån mappstrukturen. Varje mapp under mappen app är ett adressled; filen page.tsx i mappen definierar sidan och layout.tsx definierar den delade ramen för den delen.
I App Router är komponenter som standard serverkomponenter: de körs på servern, kan hämta data direkt och skickar inget JavaScript till webbläsaren. Komponenter som behöver interaktion, som klick eller formulärtillstånd, gör du till klientkomponenter genom att skriva direktivet use client överst.
| Fil | Adress / uppgift |
|---|---|
| app/layout.tsx | Hela sajtens rotstruktur: html, body, gemensam sidhuvud och sidfot |
| app/page.tsx | Startsidan (/) |
| app/hakkimizda/page.tsx | Adressen /hakkimizda |
| app/blog/[slug]/page.tsx | Dynamisk adress: /blog/vilken-artikel-som-helst |
| app/not-found.tsx | 404-sidan |
| app/api/iletisim/route.ts | API-endpoint (POST- och GET-hanterare) |
Metadata för SEO
Varje sida eller layoutfil kan definiera titel, beskrivning och Open Graph-taggar genom att exportera ett metadata-objekt. På dynamiska sidor används funktionen generateMetadata. Strukturen gör det enklare att hantera taggarna som behövs för SEO-anpassad webbdesign på sidnivå.
Bygge och miljövariabler
Ta ett produktionsbygge med npm run build innan du publicerar. Byggresultatet listar om varje sida genereras statiskt eller dynamiskt; om en sida du inte väntade dig blir dynamisk är det ett tidigt tecken på onödig serverbelastning.
Miljövariabler sparas i filen .env.local. Bara variabler med prefixet NEXT_PUBLIC_ skickas till webbläsaren; databaslösenord och API-hemligheter ska sakna prefix och bara användas i serverkod.
npm run build
npm run startHur ska varje sida genereras?
Next.js styrka är att du kan välja olika renderingsstrategi för varje sida. Fel val betyder antingen onödig serverkostnad eller inaktuellt innehåll; klassificera därför dina sidor efter typ direkt efter installationen.
Sidor som sällan ändras, som om oss, tjänster och kontakt, passar perfekt för statisk generering: de genereras en gång vid bygget och levereras från CDN på under en sekund. Nästan alla sidor på en företagswebbplats hör till den gruppen.
För sidor som uppdateras ibland, som blogg och produktlistor, är regenerering med jämna mellanrum (revalidate) en bra kompromiss. Användarspecifika paneler, varukorgar eller bokningsskärmar som visar tillgänglighet i realtid ska däremot genereras på servern vid varje förfrågan. Den sista gruppen är ett vanligt scenario i branschlösningar som hotell- och byråsystem och kräver att databas, cache och behörighetsdesign tänks ihop.
Alternativ för Next.js-deploy
Det finns tre vanliga vägar för Next.js-deploy. Vilken du väljer beror på trafik, budget, var datan ligger och teamets erfarenhet av serverdrift.
- Vercel: Plattformen från företaget som utvecklar Next.js. Du kopplar arkivet, och för varje push skapas automatiskt ett bygge och en förhandsgranskningsadress.
- Din egen Node.js-server: Applikationen som körs med npm run start hålls igång av en processhanterare som PM2, med Nginx framför. Det ger full kontroll men underhållsansvaret ligger på dig.
- Statisk export: Med inställningen output: 'export' i filen next.config omvandlas sajten till rena HTML-filer. Dynamiska funktioner som kräver serverkomponenter fungerar inte i det läget.
Publicering med PM2 och Nginx
När du installerat Node.js på en Ubuntu-baserad server hämtar du projektet från arkivet, bygger det och startar det med PM2. PM2:s startup-kommando ber dig köra raden som skrivs ut på skärmen med sudo; den raden gör att applikationen startar automatiskt när servern startar om.
git clone https://github.com/kullanici/benim-sitem.git
cd benim-sitem
npm ci
npm run build
sudo npm install -g pm2
pm2 start npm --name benim-sitem -- start
pm2 save
pm2 startupserver {
listen 80;
server_name ornek.com www.ornek.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}Vanliga fel och lösningar
De flesta fel i Next.js-projekt beror på versionskonflikter eller på att server- och klientkod blandas ihop. Vid problem med pakethantering hjälper också guiden om npm-kommandon.
| Symptom | Lösning |
|---|---|
| Varning om att Node-versionen inte stöds | Byt till den aktuella LTS-versionen, och om du använder nvm, nvm use --lts |
| Port 3000 används | Välj en annan port med npm run dev -- -p 3001 |
| Felet Hydration failed | Flytta koden som ger olika utdata på servern och i webbläsaren (datum, slumptal, användning av window) till en klientkomponent eller in i useEffect |
| useState kan inte användas i en serverkomponent | Lägg till direktivet use client överst i filen |
| Miljövariabeln är tom i produktion | Definiera variabeln även på servern; behövs den i webbläsaren, använd prefixet NEXT_PUBLIC_ och bygg om |
Vanliga frågor
01Ska jag använda Pages Router eller App Router?
För nya projekt är den officiella rekommendationen App Router; funktioner som serverkomponenter, nästlade layouter och strömmad rendering finns bara i den strukturen. Pages Router stöds fortfarande, så du behöver inte flytta ett gammalt projekt i all hast.
02Måste man ha Vercel för Next.js?
Nej. Next.js är öppen källkod och fungerar på alla servrar som kan köra Node.js eller i en Docker-container. Vercel gör installationen enklare; en egen server kan ge fördelar i kostnad, dataplacering och kontroll.
03Fungerar ett Next.js-projekt på delat webbhotell?
Ett projekt som kräver serverfunktioner fungerar inte på klassiskt delat webbhotell där en Node.js-process inte kan köras. Är sajten helt statisk kan du ladda upp filerna som genereras med output: export; annars behövs en VPS eller en miljö med Node-stöd.
Next.js-installationen är klar med några kommandon; rätt renderingsstrategi och en robust publiceringsmiljö är det som gör att projektet håller länge. Planerar du en applikation anpassad för din verksamhet, som bokning, annonser eller en adminpanel, titta på våra mjukvarulösningar; för en innehållsfokuserad och snabb sajt kan du lära känna vårt team för webbdesign.


