清单配置自定义
Plasmo 框架通过 package.json 中的 manifest 字段来扩展功能,允许您自定义生成的扩展清单。主要适用于启用 Plasmo 框架尚未原生支持的功能。
例如,Plasmo 框架可能不知道您需要 activeTab 权限。您需要在项目的 package.json 中添加如下配置:
package.json
...
"manifest": {
"permissions": [
"activeTab"
]
}Plasmo 会自动将以下字段从 package.json 传递到生成的扩展清单中:
packageJson.version→manifest.versionpackageJson.displayName→manifest.namepackageJson.description→manifest.descriptionpackageJson.author→manifest.authorpackageJson.homepage→manifest.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"
}
}
}注意事项
- 配置合并:Plasmo 会将您的自定义配置与框架生成的默认配置进行合并
- 配置优先级:自定义配置会覆盖框架的默认配置
- 验证配置:建议使用浏览器的开发者工具验证生成的清单文件是否正确
- 兼容性检查:确保添加的配置在目标浏览器版本中受支持
通过合理的清单配置,您可以充分利用浏览器扩展平台的各种功能,同时保持与 Plasmo 框架的良好集成。
最后更新于