如何部署react应用
部署 React 应用的常见方法
React 应用可以通过多种方式部署,具体选择取决于项目需求、服务器环境和预算。以下是几种主流部署方案:
使用静态文件托管服务
将构建后的静态文件上传至托管服务如 Vercel、Netlify 或 GitHub Pages。运行 npm run build 生成 build 文件夹,将内容上传至托管平台。
部署到云服务器
通过 SSH 连接到云服务器(如 AWS EC2 或 DigitalOcean),安装 Node.js 和 Nginx。将项目文件上传至服务器,使用 Nginx 作为反向代理。
容器化部署
创建 Dockerfile 构建镜像:
FROM node:alpine
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
RUN npm run build
CMD ["npm", "start"]
构建并运行容器:
docker build -t react-app .
docker run -p 3000:3000 react-app
使用 Serverless 架构

通过 AWS Lambda 或 Azure Functions 部署无服务架构应用。需配置 serverless.yml 文件和适配器。
持续集成/持续部署 (CI/CD)
配置 GitHub Actions 或 GitLab CI 自动化部署流程。示例 GitHub Actions 配置:
name: Deploy
on: push
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: npm install && npm run build
- uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build
优化部署性能
启用代码分割和懒加载减少初始加载时间。配置 Webpack 的 SplitChunksPlugin 或在 React 中使用 React.lazy。
设置适当的 HTTP 缓存头,对静态资源使用长期缓存。Nginx 配置示例:

location /static {
expires 1y;
add_header Cache-Control "public";
}
启用 Gzip 压缩减小文件体积。Nginx 配置示例:
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;
环境变量配置
使用 .env 文件管理环境变量,区分开发和生产环境。创建 .env.production 文件包含生产环境变量,通过 REACT_APP_ 前缀暴露给应用。
构建时变量会被硬编码,运行时变量需要通过服务器注入。对于敏感信息,考虑使用服务器环境变量或密钥管理服务。
监控和分析
集成错误跟踪工具如 Sentry 或 LogRocket 监控生产环境问题。添加 Google Analytics 或类似工具分析用户行为。
配置健康检查端点确保应用正常运行。使用 UptimeRobot 或类似服务监控应用可用性。
安全注意事项
确保禁用开发模式专用功能,如 React 开发者工具。验证所有 API 请求使用 HTTPS,设置 CSP 头防止 XSS 攻击。
定期更新依赖项修复安全漏洞,使用 npm audit 或 Dependabot 自动扫描漏洞。限制服务器访问权限,仅开放必要端口。






