工作原理
Extension.js 按以下顺序选择 profile 模式:- 显式的
profile路径(如果提供) - 受管理的 profile 模式(默认)
- 默认是临时(ephemeral)
- 当
persistProfile: true时则保持持久
- 当
EXTENSION_USE_SYSTEM_PROFILE=true时,使用系统 profile 模式
profile 能力
| 配置 / 选项 | 作用 |
|---|---|
browser.<target>.profile | 为该浏览器目标使用显式的 profile 文件夹。 |
commands.dev.profile | 仅在 dev 中使用显式的 profile。 |
commands.start.profile | 仅在 start 中使用显式的 profile。 |
commands.preview.profile | 仅在 preview 中使用显式的 profile。 |
browser.<target>.persistProfile | 为该目标在多次运行之间复用受管理的 profile 状态。 |
commands.<name>.persistProfile | 在特定命令上下文中复用受管理的 profile 状态。 |
--profile=/abs/path | 显式 profile 路径的 CLI 覆盖。 |
EXTENSION_USE_SYSTEM_PROFILE=true | 使用操作系统 / 浏览器系统 profile,而不是受管理的 profile。 |
profile 模式
| 模式 | 启用方式 | 典型用途 |
|---|---|---|
| 受管理临时模式 | 默认 | 状态隔离的干净运行 |
| 受管理持久模式 | persistProfile: true | 在稳定的浏览器状态下迭代调试 |
| 显式自定义 profile | profile: "/abs/path" 或 --profile=/abs/path | 复用已有的 profile |
| 系统 profile | EXTENSION_USE_SYSTEM_PROFILE=true | 使用系统 / 浏览器默认 profile 启动 |
dist/extension-js/profiles/<browser>-profile/<...>
dist/extension-js/profiles/<browser>-profile/dev
在 extension.config.* 中配置
CLI 用法
直接使用显式的 profile 路径:start 与 preview 上用法类似。
生命周期说明
- Extension.js 为每次运行创建一个临时的受管理 profile。
- Extension.js 在多次运行之间复用持久的受管理 profile(
dev)。 - Extension.js 会自动清理旧的受管理 profile 文件夹。可通过
EXTENSION_TMP_PROFILE_MAX_AGE_HOURS控制最大保留时长。
最佳实践
- 基线测试用受管理临时 profile:减少隐藏状态,降低不稳定复现的概率。
- 长时间调试会话用
persistProfile:在多次运行之间保留 auth / 会话 / devtools 状态。 - 按浏览器家族保持各自的自定义 profile:避免跨浏览器互相污染。
- 有意识地使用系统 profile 模式:适合复现,但隔离性不如受管理 profile。
下一步
- 进一步了解 浏览器 preferences。
- 进一步了解 浏览器 flag。

