Usamos cookies para mejorar tu experiencia en el sitio
CodeWorlds

Deployment

Wdrożenie aplikacji na serwer - start rakiety! Twój kod leci do produkcji jak rakieta na Marsa!

Deployment na Vercel

1# Install Vercel CLI
2npm install -g vercel
3
4# Deploy
5vercel
6
7# Production deployment
8vercel --prod
1// vercel.json
2{
3  "buildCommand": "npm run build",
4  "outputDirectory": "dist",
5  "framework": "vite",
6  "rewrites": [
7    { "source": "/(.*)", "destination": "/index.html" }
8  ]
9}

Deployment na Netlify

1# Install Netlify CLI
2npm install -g netlify-cli
3
4# Deploy
5netlify deploy
6
7# Production
8netlify deploy --prod
1# netlify.toml
2[build]
3  command = "npm run build"
4  publish = "dist"
5
6[[redirects]]
7  from = "/*"
8  to = "/index.html"
9  status = 200

Deployment na GitHub Pages

1npm install -D gh-pages
1// vite.config.js
2export default defineConfig({
3  base: '/repository-name/', // Nazwa repo
4  plugins: [vue()]
5})
1// package.json
2{
3  "scripts": {
4    "deploy": "npm run build && gh-pages -d dist"
5  }
6}

Docker Deployment

1# Dockerfile
2FROM node:18-alpine AS builder
3
4WORKDIR /app
5
6COPY package*.json ./
7RUN npm ci
8
9COPY . .
10RUN npm run build
11
12FROM nginx:alpine
13
14COPY --from=builder /app/dist /usr/share/nginx/html
15COPY nginx.conf /etc/nginx/conf.d/default.conf
16
17EXPOSE 80
18
19CMD ["nginx", "-g", "daemon off;"]
1# nginx.conf
2server {
3  listen 80;
4  server_name localhost;
5
6  root /usr/share/nginx/html;
7  index index.html;
8
9  location / {
10    try_files $uri $uri/ /index.html;
11  }
12
13  # Cache static assets
14  location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ {
15    expires 1y;
16    add_header Cache-Control "public, immutable";
17  }
18}
1# Build and run
2docker build -t gallery-app .
3docker run -p 8080:80 gallery-app

CI/CD with GitHub Actions

1# .github/workflows/deploy.yml
2name: Deploy
3
4on:
5  push:
6    branches: [main]
7
8jobs:
9  deploy:
10    runs-on: ubuntu-latest
11
12    steps:
13      - uses: actions/checkout@v3
14
15      - name: Setup Node
16        uses: actions/setup-node@v3
17        with:
18          node-version: 18
19
20      - name: Install dependencies
21        run: npm ci
22
23      - name: Run tests
24        run: npm test
25
26      - name: Build
27        run: npm run build
28
29      - name: Deploy to Vercel
30        uses: amondnet/vercel-action@v20
31        with:
32          vercel-token: ${{ secrets.VERCEL_TOKEN }}
33          vercel-org-id: ${{ secrets.ORG_ID }}
34          vercel-project-id: ${{ secrets.PROJECT_ID }}
35          vercel-args: '--prod'

Performance Checklist

✅ Lazy load routes ✅ Code splitting ✅ Image optimization ✅ Minification ✅ Gzip/Brotli compression ✅ CDN dla statycznych zasobów ✅ Cache headers ✅ Preload critical resources ✅ Remove console.logs ✅ Source maps tylko dla dev

Ir a CodeWorlds