loadComponent
懒加载WxworkAuthGuard
保护src/app/app.routes.ts
)改动内容:
loadComponent
动态导入WxworkAuthGuard
保护企微路由影响范围:
总计:45个路由全部改为懒加载
文件: src/modules/project/guards/wxwork-auth.guard.ts
功能:
使用方式:
{
path: 'wxwork/:cid',
canActivate: [WxworkAuthGuard],
children: [...]
}
问题1: 缺少 ng-zorro-antd
包
解决:
npm install ng-zorro-antd@^17.0.0 --legacy-peer-deps
问题2: WxworkSDK
构造函数参数类型不匹配
解决: 修改为对象形式
// 之前
const wxwork = new WxworkSDK(cid);
// 之后
const wxwork = new WxworkSDK({
cid: cid,
appId: 'crm'
});
✅ 构建成功 - 无错误
主包大小:
main-E43SXZMK.js
: 74KB(大幅减小!)懒加载chunk数量:
对比效果:
dist/yss-project/browser/
├── main-E43SXZMK.js (74KB) ← 主包,超小!
├── chunk-2NC35QMQ.js (93KB)
├── chunk-3DL7C5LQ.js (110KB)
├── chunk-23MPKK24.js (46KB)
├── chunk-2535323U.js (36KB)
├── ... (226个chunk文件)
└── index.html
受保护的路由:
/wxwork/:cid/project-loader
- 项目加载页/wxwork/:cid/customer-profile/:contactId
- 客户画像/wxwork/:cid/project/:projectId/*
- 项目详情及4个阶段子页面
order
- 订单分配requirements
- 确认需求delivery
- 交付执行aftercare
- 售后归档保护机制:
客服模块:
{
path: 'customer-service',
loadComponent: () => import('./pages/customer-service/customer-service-layout/customer-service-layout')
.then(m => m.CustomerServiceLayout),
children: [
{
path: 'dashboard',
loadComponent: () => import('./pages/customer-service/dashboard/dashboard')
.then(m => m.Dashboard),
title: '客服工作台'
}
]
}
企微项目模块(带Guard):
{
path: 'wxwork/:cid',
canActivate: [WxworkAuthGuard],
children: [
{
path: 'project/:projectId',
loadComponent: () => import('../modules/project/pages/project-detail/project-detail.component')
.then(m => m.ProjectDetailComponent),
children: [...]
}
]
}
由于Guard默认在非企微环境允许访问(开发模式),生产环境建议修改为:
if (!isWxwork) {
return router.parseUrl('/error/not-wxwork'); // 跳转错误页
}
企微OAuth授权会重定向回当前URL并附带code
参数:
https://your-domain.com/wxwork/cDL6R1hgSi/project/xxx?code=XXXXX
Guard会自动检测并处理这个流程。
确保企微应用配置中的账套ID与路由参数一致:
// 映三色账套ID
const cid = 'cDL6R1hgSi';
// 路由
/wxwork/cDL6R1hgSi/project/xxx
项目现在依赖:
ng-zorro-antd@^17.0.0
(fmode-ng的peer dependency)--legacy-peer-deps
标志安装npm run build
成功执行本次优化成功将项目从传统的静态导入改为完全懒加载架构:
✅ 45个路由 全部改为loadComponent懒加载 ✅ 226个chunk 文件实现细粒度代码分割 ✅ 主包仅74KB 实现极致首屏性能 ✅ 企微路由保护 添加认证守卫保障安全 ✅ 构建成功 无错误无警告(除已知Sass deprecation)
用户体验将显著提升,首次访问速度更快,后续访问通过缓存更加流畅!🚀