Build & Deploy ด้วย SvelteKit Adapters
ใน Next.js คุณควบคุมรูปแบบ output ด้วย output ใน next.config.js ('export' สำหรับ static, ค่าเริ่มต้นสำหรับ Node server) และเลือกแพลตฟอร์ม deployment โดยทำตามเอกสารของตัวเอง ส่วน SvelteKit ใช้แนวทางที่ชัดเจนกว่า: คุณติดตั้งแพ็กเกจ adapter แล้วอ้างอิง adapter นั้นใน svelte.config.js adapter เป็นตัวกำหนดว่า npm run build จะผลิตอะไรออกมา — เว็บไซต์ static, Node.js server, bundle ของ Vercel edge function และอื่น ๆ
เปรียบเทียบไฟล์ config
หัวข้อที่มีชื่อว่า “เปรียบเทียบไฟล์ config”// next.config.js/** @type {import('next').NextConfig} */const nextConfig = { output: 'export', // static export};module.exports = nextConfig;// svelte.config.jsimport adapter from '@sveltejs/adapter-static';import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
/** @type {import('@sveltejs/kit').Config} */const config = { preprocess: vitePreprocess(), kit: { adapter: adapter({ fallback: '404.html', }), },};
export default config;adapter ที่มีให้ใช้
หัวข้อที่มีชื่อว่า “adapter ที่มีให้ใช้”| Adapter | ตัวเทียบเท่า | กรณีการใช้งาน |
|---|---|---|
@sveltejs/adapter-static | Next.js output: 'export' | static เต็มรูปแบบ — deploy ไปยัง CDN ใดก็ได้ (Netlify, GitHub Pages, S3) |
@sveltejs/adapter-auto | — | ตรวจจับ Vercel, Netlify, Cloudflare โดยอัตโนมัติ |
@sveltejs/adapter-node | Next.js standalone server | Node.js server (Dockerfile, VPS, Railway) |
@sveltejs/adapter-vercel | การ deploy Next.js แบบเฉพาะ Vercel | การ deploy ไปยัง Vercel แบบชัดเจนพร้อม config edge/serverless |
คำสั่ง build และ preview
หัวข้อที่มีชื่อว่า “คำสั่ง build และ preview”# Build for production (output depends on adapter)npm run build
# Preview the production build locallynpm run previewคำสั่งเหล่านี้แมปตรง ๆ กับ next build และ next start / vite preview
GitHub Actions CI
หัวข้อที่มีชื่อว่า “GitHub Actions CI”โปรเจกต์ React/Vite:
name: CIon: [push, pull_request]jobs: 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 build - run: npm test -- --watchAll=falseโปรเจกต์ SvelteKit:
name: CIon: [push, pull_request]jobs: 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 check - run: npm run build - run: npm run testสิ่งที่เพิ่มเข้ามาที่สำคัญใน workflow ของ SvelteKit คือ npm run check (รัน svelte-check เพื่อจับ type error ก่อน build) และ npm run test (รัน Vitest)
การติดตั้ง adapter
หัวข้อที่มีชื่อว่า “การติดตั้ง adapter”# Staticnpm install --save-dev @sveltejs/adapter-static
# Auto (recommended for most deployments)npm install --save-dev @sveltejs/adapter-auto
# Node servernpm install --save-dev @sveltejs/adapter-node
# Vercelnpm install --save-dev @sveltejs/adapter-vercel