这才是 Vue 驱动的 Chrome 插件工程化正确打开方式

💥 Chrome插件开发的噩梦,你经历过几个?

配置繁琐:从入门到放弃

bash 复制代码
├── manifest.json         #  插件权限配置容易出错  
├── babel.config.js       #  兼容性配置
├── eslint.config.js      #  代码规范配置
├── vue.config.js         #  复杂的构建配置
└── ...还有更多配置文件   

打包噩梦:每次都是折磨

手动打包流程:每次至少5分钟!

  1. 打开Chrome浏览器 → 2. 进入扩展管理页面 → 3. 开启开发者模式 → 4. 点击"打包扩展程序" → 5. 选择项目文件夹 → 6. 等待打包完成

一天打包10次 = 浪费50分钟!

开发体验差

  • 没有热更新,每次修改都要重新加载插件
  • 错误定位困难,调试效率极低
  • 重复性工作太多,创意被消磨殆尽

🛠️ Onion CLI:让Chrome插件开发变得简单一些

核心想法:能自动化的就别手动了

✨ 核心特性

  • 🚀 3秒创建项目:告别配置地狱
  • 一键CRX打包:10秒完成,效率提升30倍
  • 🔥 热更新支持:基于Vite,改代码实时看效果
  • 🎯 Vue3技术栈:会Vue就会做Chrome插件
  • 📦 开箱即用:TypeScript + Pinia + Axios全家桶

🎨 三种实用模板

模板类型 适用场景 示例
NewTab 新标签页替换 浏览器个性化首页、导航工具
Sidebar 侧边栏工具 笔记工具、书签管理
Popup 弹窗功能 密码管理、快捷工具

🚀 30秒极速上手

Step 1: 安装工具

复制代码
npm install xzx-onion-cli -g

Step 2: 创建项目

sql 复制代码
onion create my-first-extension

Step 3: 选择模板

  1. 选择项目类型 (使用 ↑↓ 键选择,回车确认)

💡 操作提示 :使用键盘 方向键上下切换选项,按 回车键 确认选择

  1. 选择插件模板

💡 操作提示 :同样使用 键选择,回车键 确认

  1. 拉取模板

Step 4: 启动开发

arduino 复制代码
cd my-first-extension
pnpm install
pnpm run dev

开发服务器启动后:

Step 5: 加载到Chrome进行插件开发

  1. 打开扩展管理:右上角Chrome菜单 → 扩展程序 → 管理扩展程序
  1. 开启开发者模式:右上角开关
  2. 加载插件 :点击"加载已解压的扩展程序" → 选择项目的 dist 文件夹
  1. 此时可以看到插件已经加载完成

🔄 开发调试流程:

markdown 复制代码
1. 修改源代码 (src目录)
 ↓
2. Vite自动构建到dist目录
 ↓  
3. Chrome插件自动重新加载
 ↓
4. 在浏览器中测试新功能

💡 调试技巧

  • 如果插件没有自动重新加载,在扩展管理页面点击插件的"刷新"按钮(如上图)
  • 使用 F12 开发者工具调试插件页面
  • 查看扩展管理页面的"错误"信息排查问题

Step 6: 打包

一键生成CRX文件

arduino 复制代码
pnpm run chrome

打包完成之后,在根目录下的CrxFile文件夹中可以看到打包好的插件

可直接安装或上传到Chrome Web Store

🔍 常见问题解决

Q1: 插件权限配置问题

问题:插件无法访问某些API或网站

解决 :检查 manifest.json 中的权限配置

json 复制代码
{
"permissions": [
  "activeTab",
  "storage",
  "tabs"
],
"host_permissions": [
  "https://*/*",
  "http://*/*"
]
}

Q2: 热更新不生效

问题:修改代码后插件没有自动更新

解决

  1. 确保开发服务器正在运行
  2. 在Chrome扩展管理页面点击刷新按钮
  3. 检查控制台是否有错误信息

Q3: 打包后的CRX文件无法安装

问题:生成的CRX文件在Chrome中无法正常安装

解决

  1. 检查manifest.json格式是否正确

  2. 确保所有必需的文件都已包含

  3. 验证权限配置是否合理

🎯 技术栈详情

开箱即用的现代化技术栈

  • Vue 3 + TypeScript:现代化开发体验

  • Vite:极速构建和热更新

  • Pinia:状态管理,比Vuex更简单

  • Axios:HTTP请求库

  • Mock:模拟数据,前后端分离开发

  • ESLint + Prettier:代码质量保证

  • Husky:Git提交前自动检查

💡 最后的话

Onion CLI的使命很简单

  • 让你专注于创意和功能实现

  • 把繁琐的配置和打包交给工具

  • 提供足够好的开发体验

如果这个工具帮到了你,欢迎:

  • ⭐ 给项目点个Star
  • 🐛 提交Bug反馈
  • 💡 分享使用心得
  • 🤝 贡献代码改进

相关链接

开发者的时间很宝贵,应该花在创造有价值的功能上,而不是在配置文件里打转。

如果你也有这样的想法,那我们就是同路人了


本文首发于掘金,转载请注明出处

相关推荐
荒诞英雄3 分钟前
从 17MB Vendor 大包到按需加载:Vite 多入口 Vue 组件库首屏优化实践
vue.js·vite
jsonbro3 分钟前
手把手带你实现发布订阅模式
前端·vue.js·设计模式
一只猫的梦4 分钟前
自动化模块 (Automation Module)
前端·chrome
一只猫的梦1 小时前
AI 适配器架构
前端·chrome
Cobyte2 小时前
23.Vue Vapor 组件 attrs 的实现
前端·javascript·vue.js
柯克七七4 小时前
给老项目加了 TypeScript,本来只想自己爽,结果全公司代码审查标准被我抬高了
前端·vue.js·typescript
自然 醒6 小时前
前端如何实现在线预览office常见文件功能?
前端·vue.js
肉肉不吃 肉7 小时前
前端调试跨域如何解决
前端·vue.js
HAPPY酷7 小时前
【ROS2】PyCharm 启动 Gazebo 仿真报错?从配置 Shell 到修复路径的全流程复盘
ide·chrome·pycharm
卓怡学长7 小时前
w268基于springboot + vue 物流系统
java·数据库·vue.js·spring boot·spring·intellij-idea