要完整备份火狐扩展行为,需四步:导出xpi文件保留扩展本体;提取prefs.js中扩展偏好设置;调用扩展内置导出功能备份结构化配置;复制storage/default和extensions下专属存储数据。

你需要在重装系统、更换电脑或调试插件时,完整保留已配置好的火狐扩展行为(比如 uBlock Origin 的过滤规则、Dark Reader 的站点例外、Stylus 的自定义样式),但发现单纯重新安装插件后所有设置都消失了——这是因为扩展的个性化数据分散存储在多个位置,必须分别导出才能真正备份。
导出扩展本体XPI文件(含ID与版本信息)
这一步能保留扩展安装包本身及运行时元数据,是后续精准还原的基础。注意:它不包含你改过的任何开关、规则或快捷键。
在地址栏输入 about:debugging#/runtime/this-firefox 并回车,进入调试页面。
点击“此 Firefox”区域下方“临时加载附加组件”旁的“浏览”按钮。
在弹出窗口中,导航至当前配置文件夹的 extensions 子目录(路径可通过 about:support 页面中“配置文件夹”链接直接打开)。
选中所有以 .xpi 为后缀的扩展文件,点击“打开”,完成临时加载验证。
返回 about:debugging 页面,在已加载列表中找到对应扩展,点击右侧“卸载”旁的“三点菜单”,选择“导出”。
系统将生成带原始扩展ID和版本号的.xpi文件,保存至指定路径(如 D:\FirefoxExtBackup\)。【务必确认导出文件名中包含@符号后的扩展ID,否则迁移后无法识别原配置】
提取 prefs.js 中的扩展偏好设置
多数扩展把用户修改的开关、默认行为、界面选项等写入 Firefox 主配置文件 prefs.js,这是最常被忽略却最关键的配置备份环节。
方法一:直接提取关键行
关闭所有 Firefox 进程,防止配置文件被锁定。
在 about:support 页面点击“配置文件夹”→“打开文件夹”,进入 Profile 根目录。
用记事本或 VS Code 打开 prefs.js,搜索扩展唯一 ID(如 uBlock0@raymondhill.net、https-everywhere@eff.org)。
复制所有匹配行(必须包含 user_pref("extensions. 开头的语句),粘贴至新建文本文件,命名为 ext_prefs_backup.js。
方法二:用命令行快速筛选(Windows PowerShell)
在配置文件夹路径下执行:Select-String -Path "prefs.js" -Pattern "uBlock0@raymondhill.net|https-everywhere@eff.org" | ForEach-Object {$_.Line} > ext_prefs_backup.js。
在目标设备的新 Profile 中,于 user.js 顶部添加注释行 // Ext custom prefs,随后粘贴上述内容。重启 Firefox 后,这些设置才会生效。
调用扩展内置导出功能(结构化配置优先)
如果你用的是 uBlock Origin、Dark Reader、Stylus、Violentmonkey 等支持导出的扩展,它们内置的 JSON 或 TXT 导出功能比手动提取 prefs.js 更可靠、更完整——尤其是过滤规则、用户脚本、站点例外等复杂数据。
第一步:打开扩展的选项页(通常右键插件图标 → “选项” 或 “设置”)。
第二步:查找“导出”“Export settings”“备份配置”等按钮,点击后选择保存路径。
第三步:确认导出文件格式为 JSON(uBlock)、TXT(Stylus)、ZIP(Dark Reader)等可读格式,并检查文件是否非空。
⚠️ 注意:部分扩展(如某些广告拦截器)导出时会加密敏感字段,此时需在导出前关闭“加密备份”选项,否则迁移后无法导入。
导出扩展专属存储数据(storage/default 和 extensions/ 子目录)
现代 WebExtensions 使用 IndexedDB 和 storage API 存储大量动态数据,例如 Vi 的快捷键映射、SponsorBlock 的跳过记录、Enhancer for YouTube 的频道偏好——这些数据不会出现在 prefs.js 中,必须手动复制对应目录。
关闭 Firefox,进入配置文件夹根目录。
进入 storage/default 目录,按 Ctrl+F 搜索扩展 ID 文件夹(如 moz-extension://a1b2c3d4-e5f6-7890-g1h2-i3j4k5l6m7n8/),整个文件夹复制出来。
同时进入 extensions 目录,找到与扩展同名的子文件夹(如 uBlock0@raymondhill.net),将其完整复制。
将这两个目录打包为 ZIP,命名为 ext_storage_backup.zip。迁移时解压到新 Profile 对应路径即可。











