Skip to Content
LaunchExt | Chrome 扩展开发平台 (Next.js + Plasmo) 🚀 Read more → 

清单配置自定义

Plasmo 框架通过 package.json 中的 manifest 字段来扩展功能,允许您自定义生成的扩展清单。主要适用于启用 Plasmo 框架尚未原生支持的功能。

例如,Plasmo 框架可能不知道您需要 activeTab 权限。您需要在项目的 package.json 中添加如下配置:

package.json
... "manifest": { "permissions": [ "activeTab" ] }

Plasmo 会自动将以下字段从 package.json 传递到生成的扩展清单中:

  • packageJson.versionmanifest.version
  • packageJson.displayNamemanifest.name
  • packageJson.descriptionmanifest.description
  • packageJson.authormanifest.author
  • packageJson.homepagemanifest.homepage_url

使用环境变量

您可以在清单配置中使用环境变量。例如在 with-storage 示例 中:

package.json
"manifest": { "browser_specific_settings": { "gecko": { "id": "$FIREFOX_EXT_ID" } } }

如果找不到对应的环境变量,该字段会从清单中完全移除。这通过配置特定目标的环境变量来支持多浏览器目标的开发工作流。

使用本地化模板字符串

您可以在清单配置中使用本地化模板字符串:

package.json
"manifest": { "name": "__MSG_extensionName__" }

配置示例

以下是一些常见的清单配置示例:

添加权限

"manifest": { "permissions": [ "storage", "activeTab", "scripting" ] }

配置内容脚本

"manifest": { "content_scripts": [ { "matches": ["https://*.example.com/*"], "js": ["content-script.js"] } ] }

设置浏览器特定配置

"manifest": { "browser_specific_settings": { "gecko": { "id": "your-extension@example.com", "strict_min_version": "91.0" } } }

注意事项

  1. 配置合并:Plasmo 会将您的自定义配置与框架生成的默认配置进行合并
  2. 配置优先级:自定义配置会覆盖框架的默认配置
  3. 验证配置:建议使用浏览器的开发者工具验证生成的清单文件是否正确
  4. 兼容性检查:确保添加的配置在目标浏览器版本中受支持

通过合理的清单配置,您可以充分利用浏览器扩展平台的各种功能,同时保持与 Plasmo 框架的良好集成。

最后更新于