我想为我的chrome扩展重新加载每次我保存在扩展文件夹中的文件,而不必显式点击“重新加载”在chrome://extensions/。这可能吗?
编辑:我知道我可以更新Chrome重新加载扩展的间隔,这是一个中途的解决方案,但我宁愿让我的编辑器(emacs或textmate)触发保存重新加载或要求Chrome监控目录的变化。
我想为我的chrome扩展重新加载每次我保存在扩展文件夹中的文件,而不必显式点击“重新加载”在chrome://extensions/。这可能吗?
编辑:我知道我可以更新Chrome重新加载扩展的间隔,这是一个中途的解决方案,但我宁愿让我的编辑器(emacs或textmate)触发保存重新加载或要求Chrome监控目录的变化。
当前回答
我已经分叉LiveJS,以允许实时重新加载打包的应用程序。只需将文件包含在应用程序中,每次保存文件时,应用程序将自动重载。
其他回答
Chrome扩展有一个权限系统,它不会允许它(一些人在SO有同样的问题),所以要求他们“添加这个功能”是不会工作的IMO。有一封来自Chromium Extensions谷歌Groups的邮件,其中提出了一个使用Chromium .extension. getviews()的解决方案(理论),但也不能保证工作。
是否可以加到清单上。json一些Chrome内部页面,如Chrome://extensions/,这将有可能创建一个插件,将与Reload锚交互,并使用外部程序,如XRefresh(一个Firefox插件-有一个Chrome版本使用Ruby和WebSocket),你将实现你所需要的:
XRefresh是一个浏览器插件 是否会刷新当前网页 所选文件夹中的文件更改。这 使它有可能做活页 使用您最喜欢的HTML/CSS编辑 编辑器。
这是不可能做到的,但我认为你可以用不同的方式来使用这个概念。
您可以尝试找到第三方解决方案,而不是,在看到文件中的修改后(我不知道emacs也不知道Textmate,但在emacs中可以绑定一个应用程序调用“保存文件”动作),只需单击特定应用程序的特定坐标:在这种情况下,它是从您的扩展在开发中的重新加载锚(您留下一个Chrome窗口打开只是为了重新加载)。
(疯狂至极,但可能管用)
我正在使用快捷方式重新加载。我不想在保存文件时总是重新加载
所以我的方法是轻量级的,你可以保留重载函数
manifest.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 /背景js。
chrome.commands.onCommand.addListener((shortcut) => {
console.log('lets reload');
console.log(shortcut);
if(shortcut.includes("+M")) {
chrome.runtime.reload();
}
})
现在在chrome浏览器中按Ctrl + M重新加载
你的内容文件,如html和清单文件是不能改变没有安装扩展,但我相信JavaScript文件是动态加载,直到扩展已经打包。
我知道这是因为当前的项目,我通过Chrome扩展API工作,似乎每次我刷新一个页面加载。
我已经做了一个简单的可嵌入脚本热重载:
https://github.com/xpl/crx-hotreload
它监视扩展名目录中的文件更改。当检测到更改时,它重新加载扩展并刷新活动选项卡(以重新触发更新的内容脚本)。
通过检查文件的时间戳来工作 支持嵌套目录 在生产配置中自动禁用自身
刚刚发现了一个新的基于grunt的项目,它提供了引导,脚手架,一些自动预处理功能,以及自动重新加载(不需要交互)。
从Websecurify引导您的Chrome扩展