如何自动重新加载我正在开发的 Chrome 扩展程序?
您可以使用“扩展Reloader ” Chrome浏览器:
使用扩展的工具栏按钮或浏览到“ http://reload.extensions ”重新加载所有解压的扩展
如果您曾经开发过 Chrome 扩展程序,您可能希望无需浏览扩展程序页面即可自动重新加载解压扩展程序的过程。
“扩展重新加载器”允许您使用 2 种方式重新加载所有解压的扩展:
1 - 扩展的工具栏按钮。
2 - 浏览到“ http://reload.extensions ”。
工具栏图标将通过单击重新加载解压的扩展。
“通过浏览重新加载”旨在使用“后构建”脚本自动执行重新加载过程 - 只需在脚本中使用 Chrome添加对“ http://reload.extensions ”的浏览,您将拥有一个刷新的 Chrome 窗口。
更新:截至 2015 年 1 月 14 日,该扩展已开源并可在 GitHub 上获得。
更新:我添加了一个选项页面,这样您就不必再手动查找和编辑扩展程序的 ID。CRX和源代码位于:https : //github.com/Rob--W/Chrome-Extension-Reloader
更新 2:添加了快捷方式(请参阅我在 Github 上的存储库)。
包含基本功能的原始代码如下所示。
创建一个扩展,并结合API使用浏览器操作方法chrome.extension.management
来重新加载解压后的扩展。
下面的代码向 Chrome 添加了一个按钮,点击后将重新加载扩展程序。
manifest.json
{
"name": "Chrome Extension Reloader",
"version": "1.0",
"manifest_version": 2,
"background": {"scripts": ["bg.js"] },
"browser_action": {
"default_icon": "icon48.png",
"default_title": "Reload extension"
},
"permissions": ["management"]
}
bg.js
var id = "<extension_id here>";
function reloadExtension(id) {
chrome.management.setEnabled(id, false, function() {
chrome.management.setEnabled(id, true);
});
}
chrome.browserAction.onClicked.addListener(function(tab) {
reloadExtension(id);
});
在任何功能或事件中
chrome.runtime.reload();
将重新加载您的扩展程序(文档)。您还需要更改manifest.json文件,添加:
...
"permissions": [ "management" , ...]
...
我制作了一个简单的可嵌入脚本来进行热重载:
https://github.com/xpl/crx-hotreload
它监视扩展目录中的文件更改。当检测到更改时,它会重新加载扩展并刷新活动选项卡(以重新触发更新的内容脚本)。
- 通过检查文件的时间戳来工作
- 支持嵌套目录
- 在生产配置中自动禁用自身
我正在使用快捷方式重新加载。我不想在保存文件时一直重新加载
所以我的方法是轻量级的,你可以将重新加载功能保留在
清单文件.json
{
...
"background": {
"scripts": [
"src/bg/background.js"
],
"persistent": true
},
"commands": {
"Ctrl+M": {
"suggested_key": {
"default": "Ctrl+M",
"mac": "Command+M"
},
"description": "Ctrl+M."
}
},
...
}
src/bg/background.js
chrome.commands.onCommand.addListener((shortcut) => {
console.log('lets reload');
console.log(shortcut);
if(shortcut.includes("+M")) {
chrome.runtime.reload();
}
})
现在在 chrome 浏览器中按 Ctrl + M 重新加载