有没有办法检测
Developer mode
何时启用?
我想检测这一点的原因是因为我的扩展在控制台中生成了大量调试信息。为了避免不必要的性能损失,如果禁用开发模式,我想禁用输出。 目前,我正在使用这个小技巧,它仅在解压扩展名时输出数据:
chrome.management.getSelf().then(data=>debug.show=data.installType=="development");
const debug = new Proxy({show:false,void:()=>{}},
{
get(target, prop)
{
return target.show ? console[prop].bind(console) : target.void;
}
});
但我也希望能够在打包状态下测试它。
对于 Chrome 120+,弹出窗口或服务工作线程中有一个选项可以检查 userScripts API 的可用性。
根据 Chrome 文档,
userScripts
API 仅当在 Chrome 中启用 Developer mode
时才可用。
首先,在您的
userScripts
中添加 manifest.json
权限:
...
"permissions": [
"userScripts"
],
...
然后您可以在运行时检查该 API:
export function isDeveloperModeEnabled(): boolean {
try {
chrome.userScripts;
return true;
} catch {
return false;
}
}