vite chrome extension 制作流程
创始人
2025-05-28 22:02:11
0

找了半天如何结合vite进行chrome extension的开发。发现了npm有一些模版,不过感觉都不太好用,或者是基于webpack的。
因此顺便在学习一下如何进行项目配置,着手自己搭一个开发环境。整体思路也很简单,这种不涉及后端方法替换,只是生成多项目。
沿着这个思路(基于node7+开发):
样例项目 github

安装vite项目

npm create vite@latest extension -- --template vue
cd extension
npm install
npm run build  

增加Chrome extension支持

dist 文件内部会编译出一个网页,接下来要让chrome能够加载这个网页。
在dist文件夹内部增加 manifest.json 即可。文档地址
manifest.json 文件如下:

{"name": "vite","version": "1.0.0","manifest_version": 3,"description": "vite chrome extension tempalte","icons": {"16": "assets/vue.svg","48": "assets/vue.svg","128": "assets/vue.svg"},"options_ui": {"page": "index.html","open_in_tab": false}
}

之后在dist文件夹内放点icons,这样基本东西就齐了。如果没有其他的需求,目前这种基本上就能完事了。

但是一般来说还想加点 background service worker, override page 之类的东西。因此还要继续改造一下。

增加 background service worker

再增加一个独立的项目生成 background.js
增加一个 vite.config.background.js。
顺便整理一下当前的项目文件组织方式。

- src- background # background 项目- popup # popup 项目- manifest.json # manifest.json - assets # manifest.json 中的 logo

dist 打包的目录的结构如下:

- dist- background # background 项目- popup # popup 项目- manifest.json # manifest.json - assets # manifest.json 中的 logo

这样需要增加两个编译项目:

  • vite.config.popup.js
  • vite.confg.background.js

vite.confg.background.js 项目配置

类似的配置修改到 vite.config.popup.js 上。

import { defineConfig } from 'vite'
import { resolve } from "path"
import vue from '@vitejs/plugin-vue'// https://vitejs.dev/config/
export default defineConfig({plugins: [vue()],build: {rollupOptions: {input: {main: resolve(__dirname, 'src/background/background.js'),},output: {dir: "dist/background",entryFileNames: "background.js"}}}
})

manifest.json 中增加background配置

  "options_ui": {"page": "popup/index.html", // 对应的popup项目"open_in_tab": false},"background": {"service_worker": "background/background.js"}

进而需要修改一下 package.json

"scripts": {"build": "vite build -c vite.config.popup.js && vite build -c vite.config.background.js",// "build": "bash build.sh", // 或者增加脚本bash.sh
},

bash.sh脚本如下:

vite build -c vite.config.popup.js &&\
vite build -c vite.config.override.js

不过其中有一个public产出物无法自动拷贝到dist文件中,因此需要在脚本中增加一些拷贝命令。
完整bash.sh如下:

mkdir dist
rm -rf dist/* &&\vite build -c vite.config.popup.js &&\
vite build -c vite.config.background.js &&\cp -r src/assets dist &&\
cp src/manifest.json dist/manifest.json &&\# copy public mv src/popup/dist/popup/* dist/popup/ &&\
rm -rf src/popup/dist

基本上到此就能够支持extension跑起来了。
如果需要 override 配置,再增加一个独立的项目配置项即可。

参考完整项目地址

相关内容

热门资讯

6月信托数量环比增加1440款... 数据显示,截至2025年6月末,共有65家信托公司存续43625款标品信托产品,存续数量环比增加14...
原创 油... 车友们,今天是2025年7月28日,农历闰六月初四,星期一。距离新一轮汽柴油调价倒计时不足36个小时...
加快动产及权利质押融资创新,增... 来源:金融电子化 近年来,监管部门相继出台《关于规范发展供应链金融 支持供应链产业链稳定循环和优化升...
上交所:东方证券股份有限公司债... 7月28日,上交所发布关于东方证券股份有限公司2025年面向专业投资者公开发行短期公司债券(第三期)...
哈尔滨机场停车费24小时收费标... 一、哈尔滨机场停车场位置和路线 地下停车场(P4) 位置:位于T2航站楼前1号停车场下面。 进场路...
山西证券:首次覆盖浙江荣泰给予... 山西证券股份有限公司徐风,姚健近期对浙江荣泰进行研究并发布了研究报告《主业稳健增长,传动业务卡位优越...
关税对许多商户构成生存威胁!德... 当地时间27日欧盟与美国就双方贸易问题达成框架协议。根据协议,美国将对大部分欧盟进口产品征收15%的...
国家统计局公布:重要数据降幅收... 7月27日,国家统计局公布数据显示,6月份,规模以上工业企业利润同比下降4.3%,较5月份明显收窄。...
贸易协议缓解担忧,欧元兑美元维... 汇通财经APP讯——欧元兑美元在前两个交易日录得小幅下跌后微涨,周一(7月28日)亚洲时段交投于1....
福建德尔IPO前“突击”清理多... 在氟化工行业高歌猛进的浪潮中,主要从事氟化工基础材料、新能源锂电材料、特种气体和半导体湿电子化学品等...
突发!居然智家实控人汪林朋坠楼... “ 短短数日,这位曾身家125亿元的家居巨头掌舵人以一种令人唏嘘的方式告别了他一手打造的资本王国,也...
居然智家一度跌停,公司回应董事... 图片来源:居然之家官网 7月28日,居然智家(000785.SZ)开盘跌停。截至上午收盘,该股股价跌...
快手2025一季度净利润下滑3... 运营商财经网 实习生郑永杰/文 近日,快手科技发布2025年第一季度财报。报告期内,公司实现营收32...
居然智家董事长汪林朋被曝坠楼身... 7月27日消息,家居行业头部企业居然智家、董事长汪林朋被曝跳楼身亡。经多位行业人士确认,证实了此消息...
“国补”继续!第三批690亿元... 近日,国家发展改革委已会同财政部,向地方下达了今年第三批690亿元超长期特别国债支持消费品以旧换新资...
港股午评:恒指涨0.4%科指跌... 7月28日消息,三大指数冲高回落。截至午间收盘,恒生指数涨0.4%,报25490.45点,恒生指数跌...
弘信电子:7月25日融券卖出6... 证券之星消息,7月25日,弘信电子(300657)融资买入1.12亿元,融资偿还1.66亿元,融资净...
东山精密:7月25日融资买入1... 证券之星消息,7月25日,东山精密(002384)融资买入1.46亿元,融资偿还2.36亿元,融资净...
A股2025年首只10倍股诞生 上纬新材早盘一度涨超16%,再创历史新高。 该股年内累计涨幅已到达10倍以上,成为A股2025年以...
魅族换帅!创始人亲弟黄质潘重掌... 瑞财经 吴文婷7月25日,据媒体报道,星纪魅族证实,黄质潘正式出任星纪魅族集团CEO。 与此同时,...