用途:为 WebContainer 集成添加或规划最小可用的验证测试,包含一个实例、一个确定性文件树、一次有界依赖安装、一个服务器进程和一次预览就绪观察,避免把教程片段当作生产架构。
主要能力:集中管理 WebContainer.boot() 的单实例所有权;用 mount() 挂载 FileSystemTree 或受支持的二进制快照;通过安装进程的退出 promise 确认成功后再启动服务器;注册 server-ready、error 与清理处理器并保留取消订阅函数;使用 server-ready 发出的 URL 而非自行构造预览主机。
使用方式:先用 Read、Glob、Grep 确认应用入口、包版本与现有生命周期归属,仅在需要时用 WebFetch 查阅官方 StackBlitz 或 WebContainers 文档,再按用户请求用 Write 或 Edit 实现冒烟测试。流程为:确认包与浏览器支持假设;复用或创建单例所有者;定义带锁定依赖与显式启动脚本的合成项目;挂载文件树、执行仓库认可的安装命令、输出有界状态并在非零退出时失败;订阅就绪与错误事件、启动服务器、将发出的 URL 绑定到预览元素;记录监听器、进程与 teardown() 的清理行为。
适用场景:浏览器应用已通过 StackBlitz 集成预检、已验证跨源隔离与 HTTPS 行为、且使用不含专有源码或密钥的小型合成项目时。
限制:冒烟测试不得包含 API 密钥、注册表令牌、Cookie 或 .env 数据;如需商业 API 密钥或组织认证,应复用现有运行时绑定与初始化模块,不显示其值。未经明确授权与安全审查,不得加入任意用户源码、私有包、生产密钥、遥测或广泛网络访问,也不得为让本地示例通过而修改生产隔离响应头。错误处理:存在第二条 boot 路径时先合并生命周期所有权;安装非零退出时保留退出码与有界输出,不盲目重试;预览始终未就绪时先检查进程退出与端口/错误事件再改端口;需要真实客户代码时改用合成夹具并单独报告缺失契约。