如何自动重新加载我正在开发的 Chrome 扩展程序?

我希望每次在扩展文件夹中保存文件时,我的chrome扩展程序都可以重新加载,而不必在 chrome://extensions/ 中显式单击“重新加载”。这可能吗?

编辑:我知道我可以更新Chrome重新加载扩展程序的时间间隔,这是一个半途而废的解决方案,但我宁愿让我的编辑器(emacs或textmate)触发保存重新加载或要求Chrome监控目录的更改。


答案 1

您可以使用 Chrome 的“扩展程序重新加载程序

使用扩展程序的工具栏按钮或通过浏览到“http://reload.extensions”重新加载所有未打包的扩展程序

如果您曾经开发过Chrome扩展程序,则可能希望自动执行重新加载解压缩的扩展程序的过程,而无需浏览扩展程序页面。

“扩展重新加载器”允许您使用2种方式重新加载所有未打包的扩展:

1 - 扩展程序的工具栏按钮。

2 - 浏览到“http://reload.extensions”。

工具栏图标只需单击一下即可重新加载解压缩的扩展。

“通过浏览重新加载”旨在使用“构建后”脚本自动执行重新加载过程 - 只需使用Chrome将浏览添加到“http://reload.extensions”到脚本中,您就会有一个刷新的Chrome窗口。

更新:自 2015 年 1 月 14 日起,该扩展是开源的,可在 GitHub 上使用


答案 2

更新:我添加了一个选项页面,因此您不必再手动查找和编辑扩展程序的ID。CRX和源代码位于:https://github.com/Rob--W/Chrome-Extension-Reloader
更新2:添加快捷方式(请参阅我在Github上的存储库)。
包含基本功能的原始代码如下所示


创建一个扩展程序,并将浏览器操作方法与 chrome.extension.management API 结合使用,以重新加载解压缩的扩展程序。

下面的代码向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);
});

icon48.png:选择任何漂亮的 48x48 图标,例如:
Google Chrome 谷歌浏览器