开发浏览器插件太难?试试 crxjs,效率飙升的秘密武器!

702 阅读4分钟

浏览器插件开发一直以来都是前端开发者的一块重要阵地。它能让我们通过扩展浏览器功能,为用户提供便捷的工具和更流畅的使用体验。然而,许多开发者在尝试插件开发时,却常常因为复杂的 API、缺乏现代开发工具支持以及传统工具链无法实现热重载而望而却步。每次修改代码都需要重新打包、加载插件,甚至重启浏览器,不仅耗时,还容易打断开发思路。如果你也有类似的困扰,那么 crxjs能成为你的终极解决方案。

什么是 crxjs?

crxjs 是一个专为现代浏览器插件开发打造的工具,它以 Vite 为基础,目标是让插件开发变得像普通前端项目一样简单。通过提供快速构建热重载多浏览器兼容等特性,它帮助开发者摆脱繁琐的流程,专注于功能实现。同时,它还能跟现代web框架( vue.js 、React.js ) 完全兼容,并完美支持 typescript。

crxjs 是如何解决插件开发中的痛点的 ?

  1. 复杂的 API 调用:通过内置工具和模板,crxjs 简化了繁琐的配置和代码管理。
  2. 低效的开发流程:支持热重载,避免反复手动加载插件,实时查看效果,大幅提升开发效率。
  3. 多浏览器兼容性问题:crxjs 提供智能的 manifest.json 配置生成,助你轻松适配 Chrome、Edge 甚至 Firefox。

无论你是初次尝试插件开发,还是想改进现有流程,crxjs 都能让你的开发体验焕然一新。

crxjs 基础入门

接下来,通过一个结合 crxjs 和 Vue 的简单例子,带你快速上手浏览器插件的开发。

初始化项目

首先,使用以下命令, 初始化一个 Vite 项目:

npm init vite@^2.9.4

安装CRXJS

npm install --save-dev @crxjs/vite-plugin@beta

配置 vite config 文件

初始化完成,基础工程。 我们需要对 vite.config.js 文件进行配置。

vite.config.js

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// +++++++++++++++++++ 增加如下代码 ++++++++++++++++++++
import { crx } from '@crxjs/vite-plugin'
import manifest from './manifest.json' // Node >=17
// ++++++++++++++++++++++++++++++++++++++++++++++++++++

export default defineConfig({
  plugins: [
    vue(),
    // +++++++++++++ 增加部分代码 +++++++++++
    crx({ manifest }),
    // +++++++++++++++++++++++++++++++++++++
  ],
})

配置 manifest.json

接下来,我们需要配置插件的 manifest.json 文件,让浏览器识别我们的插件:

{
  "manifest_version": 3,
  "name": "Vue 插件示例",
  "version": "1.0.0",
  "action": {
    "default_popup": "index.html"
  }
}

最终目录结构

经过如上配置,我们就得到了一个crx的最终工程。 这个工程看起来跟我们的Vue 工程不能说一模一样吧。 至少也是八九不离十。

1736344103242.png

启动开发服务器

运行以下命令启动开发环境:

npm run dev

此时,你可以加载dist目录下的内容作为浏览器插件,看到带有 Vue 界面的 Popup 并测试交互功能。

如果不知道怎么加载可以看我之前的chrome 插件快速入门文章。

通过以上步骤,我们快速完成了一个基于 crxjs 和 Vue 的简单浏览器插件。如果你习惯使用 Vue 开发,那么 crxjs 能让你的插件开发变得既高效又得心应手!

编译与发布

在完成插件开发后,crxjs 同样简化了插件的编译、发布和加载流程。

  1. 编译与打包: crxjs 提供了与 Vite 无缝结合的打包功能。你只需运行以下命令,即可生成优化后的插件包:

    npm run build
    

    打包完成后,插件的所有文件将被输出到 dist 目录,并根据 manifest.json 的配置自动整理,确保文件结构符合浏览器的加载要求。

  2. 本地加载: 在开发完成后,你可以通过浏览器的“加载解压缩的扩展程序”功能,直接加载 dist 目录,快速验证插件的功能和表现。

  3. 发布到 Chrome Web Store: crxjs 生成的插件包完全符合 Chrome Web Store 的要求。你只需压缩 dist 目录中的内容为 ZIP 文件,然后上传到 Chrome Web Store 即可发布。

通过这样的编译与发布流程,开发者无需担心繁琐的手动打包和兼容性问题,整个过程既高效又省心。

总结

crxjs 让浏览器插件开发不再是一项复杂的任务,而是变得和开发普通的前端项目一样直观且高效。如果你正在考虑涉足浏览器插件开发领域,或者希望提升现有插件项目的开发效率,不妨试试 crxjs。

让 crxjs 成为你浏览器插件开发的得力助手!

期待你用过crxjs 开发的插件像推荐插件一样获得巨大的用户群体。