Wdrożenie aplikacji na serwer - start rakiety! Twój kod leci do produkcji jak rakieta na Marsa!
1# Install Vercel CLI
2npm install -g vercel
3
4# Deploy
5vercel
6
7# Production deployment
8vercel --prod1// vercel.json
2{
3 "buildCommand": "npm run build",
4 "outputDirectory": "dist",
5 "framework": "vite",
6 "rewrites": [
7 { "source": "/(.*)", "destination": "/index.html" }
8 ]
9}1# Install Netlify CLI
2npm install -g netlify-cli
3
4# Deploy
5netlify deploy
6
7# Production
8netlify deploy --prod1# netlify.toml
2[build]
3 command = "npm run build"
4 publish = "dist"
5
6[[redirects]]
7 from = "/*"
8 to = "/index.html"
9 status = 2001npm install -D gh-pages1// 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}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 /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-app1# .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'✅ 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