Fronts 2.0
运维与发布

支持策略

Fronts 2.0 对软件包、运行时、框架、浏览器、模块格式与预发布版本的支持边界。

Fronts 2.0 尚未发布。stable 前公开 API、package boundary 和 protocol 可能变化,但所有用户可见 package 变更仍必须有 Changeset。package manifest 的精确 engine/peer range 最权威;本文解释“声明”与“验证” 的区别,一个绿色 fixture 只证明一个组合,不证明整个相邻版本空间。

支持术语

术语含义
Declared support位于发布 package engine/peer range 内,回归按 Fronts issue 处理
CI-verified仓库在该环境运行必需 build/package/test/browser gate
Fixture-verified只有一个 checked-in 组合通过,不推导相邻版本或模式
Best effort可能可用、欢迎报告,但没有持续门禁
Unsupported在 package contract 外或违反已记录边界

仅因为 JavaScript engine 提供某个 Web API,并不能称为 CI-verified;新声明必须有可重复检查。

Package 与 toolchain

Surface声明边界当前验证
公开 package Node engine>=22.18.0Node 22 与 24 上 pnpm check
仓库 package managerpnpm >=10 <12workspace 固定 pnpm 10
JavaScript 输出ES2022、ESM、CommonJS构建并以隔离 tarball 导入每个公开 entry
TypeScript declarationESM/CJS 均输出固定 compiler 的 workspace typecheck
MF Runtime@module-federation/runtime ^2.7.0adapter 单测与真实 HTTP Runtime 集成
ReactReact/DOM >=18.2.0 <20workspace 版本的 contract/example
Vue>=3.4.0 <4workspace 版本的 contract/example

当前没有 consumer TypeScript compiler matrix,因此不能宣称最低 TS 版本。React 18.2 与 Vue 3.4 是合法 peer lower bound,但尚未分别 matrix-test;stable 前应新增最低版本 job,或缩窄范围。

浏览器与运行环境

Core Host 需要 ES2022、DOM、AbortController、Proxy.revocable、promise 与 module/bundler output; Shadow 路径需要 Shadow DOM;iframe 还需要 cross-origin sandbox、postMessage、transferable MessagePort、 structured clone 与 crypto.randomUUID()。框架 adapter 还受对应 React/Vue browser requirement 限制。

当前 CI 只安装 Playwright Chromium,所以只有 Chromium 是 CI-verified。Firefox/WebKit 是 best effort, 直到同一 lifecycle/replacement/service/Shadow/iframe suite 成为 required project。mobile browser、embedded WebView 不声明支持;IE 与非 ES2022 legacy browser 不支持。Fronts 不发 polyfill,consumer 可自行 transpile/polyfill,但不能削弱 exact iframe origin 或 secure channel ID。

浏览器 shell + DOM 是主要 target。Node ESM/CommonJS 只验证公开 entry 可导入,不代表能 mount DOM。 SSR/hydration、Web/Service Worker、React Native/native WebView 不支持;Deno/Bun build runtime 为 best effort。

MF producer 与公开 package contract

官方 Rsbuild/官方 Vite 是首选集成;未加 scope 的 vite-plugin-federation 是 verified producer compatibility;OriginJS 是锁定 Vite 5.4 的 production ESM narrow fixture;所有 MF Host 都使用显式 官方 Runtime instance。插件 README 或 peer range 不会自动成为 Fronts 支持声明。新增 producer/version 必须用 fixture 证明完整 lifecycle、service、cleanup 和适用时 shared behavior。

唯一支持的 entry 是 @fronts/core@fronts/core/iframe@fronts/mf@fronts/react@fronts/vue3。深导入 distsrc、runtime-core 或其他私有文件不支持。ESM import 与 CommonJS require 都是 package gate;四个公开 package 通过 Changesets fixed group 同步版本。application 与 iframe protocol major 是运行时兼容门禁,伪造 brand 或绕过 validation 不支持。

Prerelease 与 stable gate

stable 前可能 breaking,四包一起移动;consumer 应 pin 精确 prerelease/受控 lockfile,并在生产 rollout 前测试自己的 Host、producer、browser、policy 组合。第一次发布后 npm next 才表示 prerelease;当前 没有已发布 2.0 package。

发布 latest 前必须完成:公开 protocol/entry compatibility review;tarball ESM/CJS/declaration/subpath 检查;每个声明 minimum framework/runtime 持续验证或缩窄;browser matrix 明确且绿色;iframe origin、 capability、cancellation、timeout、cleanup 为 required test;production-preview 覆盖全部 producer tier; provenance、rollback 和 vulnerability intake 实际可运行。之后才按 semver 在 minor 加兼容能力、patch 修复、 new major 破坏契约。

报告兼容问题与验证

报告应含 Fronts 版本/lock、Node/browser/framework/MF/plugin 版本、manifest 或 raw entry 与格式、dev/preview 差异、最小 ref/source/container、Fronts code/phase/event、redacted MF trace、unmount 后 audit,以及最小 reproduction。安全问题必须走安全策略,不能公开发布。

pnpm check 覆盖格式、构建、tarball、类型、单测和 coverage;pnpm test:e2e:preview 重建当前 producer matrix 并在 Chromium 验证。上述缺失 matrix 必须如实标成 Missing,不能宣传为 CI-verified。

本页目录