Logo

Nasazení do produkce

Ve vývoji máme často zapnuté různé debug nástroje, hot reload, nepřehledný kód... to všechno chceme před produkcí odstranit. V této kapitole se podíváme na to, jak připravit React aplikaci na nasazení, jak ji zabalit do Dockeru a kam ji následně nahrát.


Vite používá vite.config.ts soubor, kde můžeš snadno upravit produkční build.

// vite.config.ts
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [react()],
  build: {
    minify: 'esbuild',
    sourcemap: false,
  }
})

Build spustíš jednoduše:

npm run build

Tím vznikne složka dist/, která obsahuje finální web.

Pro nasazení na vlastní server nebo cloud se často používá Docker. Níže jsou ukázky Dockerfile pro Vite i Next.js aplikaci.

FROM node:20 AS build
WORKDIR /app
COPY . .
RUN npm install && npm run build

FROM nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 80

Pokud používáš React bez backendu, Vite build je čistě statický web – ideální pro hostování přes CDN.

FROM node:20 AS build
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build

FROM node:20-alpine
WORKDIR /app
COPY --from=build /app ./
ENV NODE_ENV production
EXPOSE 3000
CMD ["npm", "start"]

Pokud si ale nevíš rady s dockerem můžu Vám doporučit Vercel, Netlify nebo Cloudflare Pages. Všechny tyto služby podporují Git-based deploy tudíš stačí pouze připojit GitHub účet a o zbytek se postarají oni.

A na závěr malý bonus pokud jste si vybaril nexjs, můžete použít next-bundle-analyzer který vám umožní lehce si zobrazit velikost vašich závislostí. Může vám to pomoct při optimalizaci.

npm install @next/bundle-analyzer
// next.config.js
const withBundleAnalyzer = require('@next/bundle-analyzer')({
  enabled: process.env.ANALYZE === 'true',
});
module.exports = withBundleAnalyzer({});

Spustíš:

ANALYZE=true npm run build