npm run build 把整个应用编译压缩进 dist/(入口 in"> npm run build 把整个应用编译压缩进 dist/(入口 in"> npm run build 把整个应用编译压缩进 dist/(入口 in">
React 词条目录
前端Wiki/React/实战/上线与排错

打包与部署

React 应用的部署产物是纯静态文件:npm run build 把整个应用编译压缩进 dist/(入口 index.html + assets/ 下的 JS/CSS)。托管方式随基础设施而定:小项目丢 Nginx/Caddy 或对象存储 + CDN,Serverless 项目可用 Vercel/Netlify。

单页应用部署有两点必须配置:1)所有路由 fallback 到 index.html(否则刷新 /user/42 报 404);2)静态资源加长缓存 hash(Vite 已自动处理文件名 hash)。动态数据走接口,前端只管渲染。

  • npm run build 产物在 dist/:纯静态,没有服务器也能跑
  • SPA 必须配置路由 fallback 到 index.html(否则刷新 404)
  • Vite 自动给文件加 hash,静态资源可缓存到天荒地老
部署
# nginx.conf:SPA 部署最小配置
server {
  listen 80;
  server_name example.com;
  root /usr/share/nginx/html;         # 指向 dist/
  index index.html;

  # 长缓存带 hash 的静态资源
  location /assets/ {
    expires 1y;
    add_header Cache-Control "public, immutable";
  }

  # 关键:所有未匹配路由都回 index.html
  location / {
    try_files $uri $uri/ /index.html;
  }

  # 接口反向代理到后端
  location /api/ {
    proxy_pass http://127.0.0.1:3000;
  }
}
本节要点build 出静态产物 → Nginx/CDN 托管 → try_files 回 index.html → 接口反代后端。