使用 web-ext 3.2.0 开发跨浏览器扩展

Mozilla 创建了 web-ext 工具,以帮助您更快、更轻松地构建浏览器扩展。尽管我们最初的发布重点是支持桌面版 Firefox,然后是 Android 版 Firefox,但我们的愿景始终是在发布 Firefox 支持后支持跨浏览器开发。

借助 3.2.0 版本,您可以使用 web-ext 真正构建跨浏览器扩展!以下是在 Google Chrome 中使用 run 命令开发扩展的示例

$ web-ext run -t chromium

更棒的是,您可以在 Firefox 和 Chrome 中同时运行您的扩展

$ web-ext run -t firefox-desktop -t chromium

正如您所料,您可以在任何其他基于 Chromium 的浏览器(例如 BraveMicrosoft EdgeOperaVivaldi)中进行开发。以下是在 Opera 中进行开发的示例

$ web-ext run -t chromium --chromium-binary /usr/bin/opera

Firefox 的 WebExtensions API 一直努力与 Chrome API 兼容,但一些改进导致了一些细微的差异,例如 WebExtensions API 始终返回 Promise。Mozilla 已经提供了 webextensions-polyfill 库来规范化两个浏览器平台上的 Promise 和其他内容。

现在,我们很高兴为跨浏览器扩展提供一个强大的开发解决方案!试用后,如果您遇到 问题 或有改进意见,请告诉我们。

以下是在 Firefox 和 Chrome 中启动扩展,然后编辑扩展源中的 CSS 文件以展示 自动重新加载 功能的示例。

 

web-ext 3.2.0 中的其他新功能

Chromium 浏览器支持并不是唯一的新功能。得益于 parse-json 5.0.0,扩展清单和区域设置文件上的解析错误现在将包含代码框架。这将使跟踪和修复错误变得容易得多。

Detailed JSON parsing error logged from web-ext 3.2.0

关于 Luca Greco

Luca Greco 的更多文章……

关于 kumar303

Kumar 在各种项目中负责 Mozilla Web 服务和工具的开发,例如支持 Firefox 附加组件 的项目。他还参与了大量 随机的开源项目 的开发。

kumar303 的更多文章……


3 条评论

  1. Scott Fortmann-Roe

    很高兴看到!

    我也很希望看到 Firefox 扩展的 externally_connectable 支持落地。这是目前阻止我们移植 Chrome 扩展的最大障碍。

    2019 年 10 月 16 日 下午 10:05

    1. kumar303

      此方面的进展可以在 https://bugzilla.mozilla.org/show_bug.cgi?id=1319168 跟踪。在最初移植 Chrome API 功能时,此 API 功能的优先级较低,但自那以后其使用量有所增加。

      2019 年 10 月 16 日 下午 10:23

  2. 匿名

    web-ext 需要 Node.js,这太糟糕了。

    是否有任何 Firefox Web 扩展的原始样板,演示了如何以正确的方式读取/写入配置、进行本地化,以及可能的其他操作?

    2019 年 10 月 28 日 上午 09:04

本文的评论已关闭。