需分六步迁移火狐扩展配置:一、导出含id的xpi包;二、提取prefs.js中对应user_pref行存为user.js;三、通过about:debugging导出browser.storage.local数据;四、复制storage/default/[id]子目录;五、使用扩展内置导出功能保存json/css;六、全量备份profile并校验关键文件。

如果您希望在更换设备或重装系统后,完整保留火狐浏览器中第三方扩展插件(如uBlock Origin、Dark Reader、Stylus、Violentmonkey等)的自定义复杂配置(包括选项页设置、过滤规则、用户脚本、快捷键、启用状态、主题偏好、同步开关等),但发现仅重新安装XPI文件或依赖Firefox账户同步无法还原全部行为,则需针对不同存储机制分别提取与导出对应数据。以下是实现本地个性化完美无损转移的具体方法:
一、导出扩展本体XPI包并验证ID一致性
此方法确保扩展版本、唯一标识符及安装元数据可被准确复原,为后续配置注入提供匹配基础;若ID不一致,导入的偏好设置将被浏览器忽略。
1、在地址栏输入about:debugging#/runtime/this-firefox并回车,进入调试运行时页面。
2、确认“此 Firefox”区域已展开,找到目标扩展名称,点击右侧“检查”按钮打开开发者工具。
3、在新窗口中切换至“关于”标签页,记录显示的“UUID”或“ID”字段值(如uBlock0@raymondhill.net)。
4、返回about:debugging页面,在扩展列表中点击其右侧“三点菜单”,选择“导出”。系统生成的.xpi文件名将包含该原始ID与版本号。
5、将导出的.xpi文件保存至独立目录(如D:\FirefoxExtBackup\XPI\),并核对文件名中的ID是否与步骤3完全一致。
二、提取并迁移扩展专属偏好设置(prefs.js/user.js)
大量扩展将结构化配置写入Firefox主配置文件prefs.js或覆盖文件user.js,其中以user_pref("extensions.[ID].开头的语句即为其自定义参数;直接迁移这些行可复原界面开关、默认行为等核心设置。
1、关闭所有Firefox进程,包括后台服务(可通过任务管理器确认无firefox.exe残留)。
2、访问about:support页面,点击“配置文件夹”旁的“打开文件夹”按钮,进入当前Profile根目录。
3、用文本编辑器(如Notepad++或VS Code)打开prefs.js,搜索扩展ID关键词(例如darkreader@mozilla.org)。
4、选中所有匹配的user_pref(...)语句行(含前后空行),复制并粘贴至新建文本文件,保存为ext_prefs_backup.js。
5、在目标设备的新Profile中,将该文件重命名为user.js,并置于Profile根目录;确保about:config中general.config.obscure_value值为0且未启用加密配置。
三、导出browser.storage.local键值对(JSON格式)
采用WebExtensions API存储设置的扩展(如Stylus、Enhancer for YouTube)通常将配置存于browser.storage.local,该数据独立于prefs.js,必须通过调试界面手动提取其完整键值结构。
1、在地址栏输入about:debugging#/runtime/this-firefox并回车。
2、在“此 Firefox”区域找到目标扩展,点击“检查”打开开发者工具。
3、切换到“存储”(Storage)标签页,展开左侧“Local Storage”,选择以moz-extension://开头且对应扩展ID的源。
4、右侧表格列出全部键名与值;右键任意键名选择“复制键”,右键对应值区域选择“复制值”,逐项整理为标准JSON对象格式。
5、将整理后的JSON内容保存为storage_local_backup.json,并在目标设备上通过相同调试路径的“Local Storage”面板,使用开发者工具控制台执行localStorage.setItem("key", JSON.stringify(value))逐项注入。
四、备份IndexedDB与扩展专属子目录(storage/default/[ID])
部分扩展(如Bitwarden、Toby、Session Buddy)将用户数据(会话快照、密码条目、笔记内容)持久化写入IndexedDB或自建data/子目录,这些数据位于storage/default/下以扩展ID命名的子文件夹中,必须整体复制才能保留完整状态。
1、关闭Firefox后,进入Profile根目录,打开storage/default/文件夹。
2、查找与目标扩展ID完全一致的子目录(如bitwarden@bitwarden.com),确认其内部包含idb、ls或data/等子结构。
3、右键该子目录,选择“复制”,粘贴至外部备份路径(如D:\FirefoxExtBackup\Storage\)。
4、在目标设备新Profile的storage/default/目录中,将该子目录完整粘贴,确保文件夹名、层级与权限属性完全一致。
五、使用扩展内置导出功能(针对支持JSON/CSS导出的插件)
高级扩展常提供独立于浏览器的导出入口,其输出为纯文本格式(JSON/CSS),不依赖Firefox配置文件结构,可跨平台、跨浏览器直接导入,是迁移最可靠的方式之一。
1、在Firefox中右键点击目标扩展图标,选择“选项”或“设置”,或访问about:addons→点击扩展右侧齿轮图标→“选项”。
2、在选项页中查找“导出设置”、“Export Rules”、“Download Config”等按钮(uBlock Origin位于“过滤器”标签页底部;Dark Reader在“外观”→“导出设置”)。
3、点击导出后,保存生成的文件(如ublock-rules.txt、darkreader-settings.json、stylus-styles.css)至备份目录。
4、在目标设备安装同版本扩展后,进入其选项页,找到对应“导入”按钮,上传该文件完成配置还原。
六、全量备份Profile目录并校验关键文件完整性
完整Profile备份是兜底方案,可确保所有未显式覆盖的隐式状态(如扩展权限授予记录、content script注入白名单、临时缓存标记)一并保留;但需排除运行时文件以避免冲突。
1、通过about:profiles确认当前使用Profile的“根目录”路径,点击“在文件管理器中打开”。
2、关闭Firefox全部进程,在资源管理器中选中整个Profile文件夹(如abc12345.default-release)。
3、复制该文件夹至外部存储,并重命名为含日期前缀的名称(如Firefox_Profile_20260513_Full)。
4、进入该备份文件夹,检查是否存在以下关键文件:extensions.json(扩展启用状态)、storage/default/(本地存储)、prefs.js(主偏好设置)、extensions/(XPI元数据)。











