经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 编程经验 » 查看文章
打造一个极度舒适的Chrome扩展项目开发环境 🚀
来源:cnblogs  作者:dombro  时间:2023/12/18 16:28:27  对本文有异议

大家好,我是 dom 哥。这是我关于 Chrome 扩展开发的系列文章,感兴趣的可以 点个小星星

Chrome 扩展能够提高浏览器的使用体验,通过自定义 UI 界面,监听浏览器事件,改变 Web 页面等操作来延展浏览器的功能。

Chrome 扩展项目使用前端 html,css,js 基础技术开发,一大痛点就是改动代码后的扩展更新问题,先来看一看 Chrome 扩展的更新逻辑:

扩展各部分 是否需要更新扩展
manifest.json Yes
background service worker Yes
content scripts Yes (并且需要刷新 Web 页面)
action popup No
options page No
Other extension HTML pages No

更新 Chrome 扩展意味着需要打开扩展管理界面(chrome://extensions),点击扩展的更新按钮,如下图:

如果每次改动代码,都需要这样操作一遍,才能看到效果,那也太痛苦了吧 ??,尤其是 content scripts,更新完扩展后还要去浏览器页签刷新页面,这极大的拉低开发效率和消磨人的耐心。

仔细想想想,目前前端项目开发已经有 HMR 热重载技术,在开发 Web 页面时可以实时查看效果,极大的提升了开发体验。那么,能否把这种极致的体验带到 Chrome 扩展开发中来呢?经过多番折腾探索,还真让我搞出来啦 ??

感谢 vite

vite 作为下一代的前端工具链,用过的都说好 ??。

vite 为各种技术栈提供了模板:

JavaScript TypeScript
vue vue-ts
react react-ts
vanilla vanilla-ts
preact preact-ts
lit lit-ts
svelte svelte-ts
solid solid-ts
qwik qwik-ts

vite 生成的项目将开箱支持:

  • ? TypeScript
  • ? html 的 HMR

用 vite 新建一个 Chrome 扩展项目,其 HMR 支持情况将如下:

扩展各部分 是否需要更新扩展 HMR
manifest.json Yes
background service worker Yes
content scripts Yes (并且需要刷新 Web 页面)
action popup No ?
options page No ?
Other extension HTML pages No ?

感谢 @crxjs/vite-plugin

@crxjs/vite-plugin 是一个 vite 插件,旨在帮助开发者使用现代 web 开发技术开发 Chrome 扩展。

使用起来也是非常简单:

  1. npm i @crxjs/vite-plugin@beta -D

在 vite.config.ts 中增加如下配置:

  1. import { defineConfig } from "vite"
  2. import { crx } from "@crxjs/vite-plugin"
  3. import manifest from "./manifest"
  4. export default defineConfig({
  5. plugins: [crx({ manifest })],
  6. })

@crxjs/vite-plugin 通过解析 manifest 清单文件,找到扩展里相关的所有文件资源进行编译打包。

在配置完之后,项目将获得以下特性:

  • manifest 不再须要是 json 文件,可以是 js 或 ts 文件!简直不要太方便 ??

  • 全方位 HMR

    扩展各部分 是否需要更新扩展 HMR
    manifest.json Yes ?
    background service worker Yes ?
    content scripts Yes (并且需要刷新 Web 页面) ?
    action popup No ?
    options page No ?
    Other extension HTML pages No ?

demo 项目源码 create-crx 我已经放在 GitHub 上,觉得不错可以 点个小星星 支持一下哦 ??

原文链接:https://www.cnblogs.com/iovec/p/create-crx.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号