前端工程化 词条目录
前端Wiki/前端工程化/实战/部署与 CI/CD

微前端与部署策略

微前端把巨型应用拆成多个独立子应用(按业务/团队拆分),各自独立开发、独立部署、运行时组合成一个站点。适用信号明确:应用大到构建十几分钟、几百人改一个仓库互相阻塞、多个技术栈(Vue 老 + React 新)需要共存。

方案上,qiankun(基于 single-spa)用 JS 沙箱加载子应用,上手快;Module Federation(webpack 5 原生)在构建期共享模块,更精细但耦合构建。多数场景其实用不上微前端——先试 npm 组件库 / Monorepo,治不了“团队协作阻塞”再上。

部署层面,前端静态资源要配 CDN 加速,并处理 History 路由的 404:Nginx 试找不到文件时回落到 index.html,交给前端路由处理。

  • 微前端解决的核心是“组织规模”:独立开发、独立部署、独立技术栈
  • 代价很真实:沙箱复杂度、样式隔离、子应用通信、加载闪烁——不是刚需别上
  • Nginx 部署三件套:gzip 压缩、静态长缓存、history 路由 try_files 回落
部署
// Nginx 配置:前端静态站标准部署
// server {
//   listen 80;
//   root /usr/share/nginx/html;          // dist 产物目录
//
//   location / {
//     try_files $uri $uri/ /index.html;  // History 路由:找不到文件回落首页
//   }
//
//   location ~* \.(js|css|png|jpg|svg|woff2)$ {
//     expires 1y;                         // 带哈希的静态资源:一年强缓存
//     add_header Cache-Control "public, immutable";
//   }
//
//   gzip on;                              // 传输压缩,体积再降 70%
//   gzip_types text/css application/javascript application/json;
// }

// qiankun 微前端:主应用注册子应用(示意)
// import { registerMicroApps, start } from 'qiankun';
// registerMicroApps([
//   { name: 'user-app', entry: '//localhost:7101', container: '#sub', activeRule: '/user' },
//   { name: 'order-app', entry: '//localhost:7102', container: '#sub', activeRule: '/order' },
// ]);
// start();        // 访问 /user 时自动加载子应用
本节要点微前端治“组织规模”病,非刚需不上;Nginx 部署三件套:gzip、长缓存、try_files 回落。
🔗 相关词条构建工具Node.jsVue