Next.js hỗ trợ vài đích deployment, được điều khiển một phần bởi cấu hình output. Lựa chọn đúng phụ thuộc vào việc bạn cần Node server, container, hay hosting tĩnh thuần.
Các chế độ build output
. = {
};
Next.js hỗ trợ vài đích deployment, được điều khiển một phần bởi cấu hình output. Lựa chọn đúng phụ thuộc vào việc bạn cần Node server, container, hay hosting tĩnh thuần.
. = {
};
Chạy một Node.js server, nên bạn có mọi thứ: SSR, ISR, Server Actions, Route Handlers, tối ưu image, middleware. Đây là cái mà các nền tảng như Vercel (nhà làm ra Next.js, zero-config) và các Node host dùng.
# Next trace chỉ các file cần thiết vào .next/standalone → một server nhỏ gọn, tự chứa
COPY --from=builder /app/.next/standalone ./
CMD ["node", "server.js"]
standalone tạo ra một thư mục tối thiểu chỉ với các dependency thực sự được dùng, lý tưởng cho các image Docker nhỏ trên AWS, GCP, server của bạn, v.v. Bạn giữ tất cả tính năng server.
next build → out/ (plain HTML/CSS/JS, deployable to any static host: S3, GitHub Pages, Netlify CDN)
Static export cho hosting rẻ nhất, đơn giản nhất nhưng tắt các tính năng server: không SSR, không ISR, không Route Handlers, không Server Actions, không tối ưu image on-the-fly. Chỉ phù hợp cho các site hoàn toàn tĩnh.
Need SSR/ISR/Server Actions, want zero-config → Vercel (or a Node host) — default output
Want containers / self-host with full features → output: "standalone" + Docker
Purely static content (docs, marketing) → output: "export" → any static CDN
- Runtime choice (Edge vs Node) affects where functions run
- Self-hosting ISR/caching needs persistent storage or a shared cache
- Image optimization on non-Vercel hosts may need a custom loader
Deployment không phải một cỡ vừa cho tất cả: chế độ output quyết định tính năng Next.js nào sống sót.
Biết rằng output mặc định/Node giữ mọi khả năng server, standalone đóng gói chúng cho Docker/self-hosting, và export đánh đổi mọi tính năng server lấy hosting tĩnh thuần cho phép bạn khớp build với hạ tầng của mình — và tránh cái bẫy output: "export" âm thầm phá vỡ SSR/ISR/Server Actions.