EMP v4.0.1 已发布,17 个核心 @empjs/* 包已统一更新到 npm latest。
核心升级
- Rspack core / dev-server 升级到
2.2.1,Rsbuild 统一到2.2.1。 - Module Federation 构建、runtime、SDK 与 DTS 闭包升级到
2.9.0。 - Rslib 升级到
1.0.0-rc.2,使用 TypeScript 7 原生声明生成链路。 - Rstest、Rsdoctor、SWC、HTML 集成与类型检查插件同步升级。
- 移除 Rspack 2.2 已废弃且无效的
cache.maxVersions透传。
升级收益
- 缓存与增量构建更可靠:纳入 loader 依赖跟踪、缓存依赖 ID 持久化、重建时陈旧 issuer 清理及 Windows 恢复路径规范化,降低缓存失效或复用错误结果的风险。
- 构建和开发服务更稳定:修复资源输出阶段的钩子顺序与并发写入控制;Rsbuild 在 watch 致命错误后不再遗留挂起请求,并会正确等待子编译器结束。
- Module Federation 运行时开销更可控:预加载资源 URL 自动去重、同步 shared factory 支持缓存,减少重复预加载与重复实例化。
- 联邦问题更容易定位:新增 instance-aware runtime diagnostics,可按 Federation 实例区分运行时信息,改善多实例场景的排查体验。
- 版本兼容边界更清晰:Rspack、Rsbuild、Rslib、Rstest 与 Module Federation 使用同一代依赖组合,减少 peer 版本漂移和跨工具链兼容问题;移除无效缓存字段后也避免继续产生废弃配置噪音。
- 升级信心更高:核心构建、Module Federation 生产构建和 31 个浏览器交互场景均已验证,升级收益不依赖仅类型或配置层面的推断。
兼容性与维护
- 增加现代模块、Android 6 和 Chrome 60 等兼容构建与验收覆盖。
- 加入可机器读取的核心依赖升级检测与发布安全门禁。
- 修复并收敛多条依赖安全链路,同时保持 CDN 与 legacy lib 的独立版本线不变。
发布后仓库工具链升级:pnpm 12
状态说明:以下内容已由 PR #434 合并到
main(merge commiteb451180),但仍不属于v4.0.1Tag 或已发布的 npm 4.0.1 包内容。
升级内容
- 仓库 package manager 基线由
pnpm@10.34.5切换为pnpm@12.2.1,engines.pnpm同步为12.x。 - CI、Publish workflow、release guard、核心依赖扫描、CLI doctor、项目生成模板、真实验收命令和文档统一使用 pnpm 12。
ignoredBuiltDependencies迁移为 pnpm 12 的显式allowBuilds: false,保持原有 9 个依赖安装脚本不执行的安全边界。- 保留 pnpm 12 默认的 24 小时依赖发布时间保护,仅对已验收并锁定的
@rstest/browser@0.11.11、@rstest/core@0.11.11使用精确版本豁免,未来版本仍受保护。 - 使用
pmOnFail: ignore保持pnpm-lock.yaml为单文档,避免 GitHub dependency graph 和单文档安全扫描器误读环境锁文件、丢失真实 workspace 依赖图。 pnpm-lock.yaml依赖图保持不变;pnpm 12 冻结安装前后锁文件哈希一致。
pnpm 12 升级收益
- 供应链保护更严格:默认阻止发布时间不足 24 小时的依赖,并对未明确审核的依赖构建脚本直接失败。
- 依赖脚本权限更透明:每个允许或拒绝执行安装脚本的包都有显式配置,避免依赖脚本被静默执行或忽略。
- 本地、CI、发布和新项目完全对齐:开发者、GitHub Actions、正式发布流程、
emp doctor和emp create使用同一 pnpm 主版本及固定版本,减少环境漂移。 - 安全扫描持续有效:锁文件保持单文档,GitHub 依赖图和现有 YAML 工具仍能读取完整依赖闭包,不会出现依赖数被误判为 0 的盲区。
- 迁移不扰动依赖闭包:本轮没有重新选择或升级 workspace 依赖,降低 package manager 大版本迁移与生态依赖升级同时发生时的排错成本。
pnpm 12 验证结果
corepack pnpm install --frozen-lockfile通过,供应链策略检查通过,锁文件哈希保持不变。test:rules:6 个测试文件、51/51 通过。deps:core:check:14/14 为CURRENT。ci:verify、empbuild、17 包发布 dry-run 全部通过。- 应用验收:14/14 个真实应用构建通过,library output smoke 通过。
- PR #434 CI:Node.js 20 / 22 / 24、build、apps 共 5/5 通过。
- 独立只读复核通过,未发现任务外改动、生成物或锁文件漂移。
v4.0.1 验证结果
- 本地
ci:verify、empbuild、17 包 npm dry-run 全部通过。 - 浏览器验收:22 个测试文件、31 个真实交互场景全部通过。
- PR CI:Node.js 20 / 22 / 24、build、apps 共 5 项全部通过。
- GitHub Actions 云端 dry-run 与正式 Publish workflow 均成功。
- npm 回读确认 17/17 包的
version与latest均为4.0.1。
相关变更
- Rspack / Module Federation 生态升级:PR #432
- v4.0.1 发布准备:PR #433
- pnpm 12 仓库工具链迁移:PR #434
- Rspack 2.2.1 发布说明:upstream release
- Rsbuild 2.2.1 发布说明:upstream release
- Module Federation 2.9.0 发布说明:upstream release
- pnpm 12.2.1 发布说明:upstream release
- pnpm 依赖解析与供应链策略:official documentation
- 完整差异:v4.0.0...v4.0.1
