首页/新闻资讯/正文详情

BewlyBewly 贡献指南(廣東話版)解读:开发环境搭建、Chrome/Firefox 构建与 i18n 多语言维护实战

发布时间:2026/9/25 3:36:28 来源:云帆数科 栏目:资讯中心
BewlyBewly 贡献指南(廣東話版)解读:开发环境搭建、Chrome/Firefox 构建与 i18n 多语言维护实战
前端【免费下载链接】BewlyBewlyJust make a few small changes to your Bilibili homepage. (English | 简体中文 | 正體中文 | 廣東話)项目地址https://gitcode.com/gh_mirrors/be/BewlyBewly点击查看免费下载导读本文以仓库内 docs/CONTRIBUTING-jyut.md廣東話贡献指南为骨架结合 package.json、scripts/、src/manifest.ts 等源码完整讲解 BewlyBewly 浏览器扩展的本地开发流程、ChromeEdge与 Firefox 双端构建打包、分支与 Commit 规范以及 i18n 多语言文件的正确维护方式。读完本文你将能够在本地跑起pnpm dev实时调试 Bilibili 页面改动掌握extension/与extension-firefox/两套产物的生成原理并能按项目规范提交合规的 PR。BewlyBewly 是一个基于 Vite Vue 3 的 Manifest V3 浏览器扩展其贡献指南有四种语言版本English | 简体中文 | 正体中文 | 廣東話。本文解读的正是其中的廣東話版本重点内容与英文版完全一致可作为多语言维护流程的直接参考。 开发环境准备项目是基于 [Vite] 搭建的vite 版本见 package.json 的devDependencies当前为^5.3.6因此本地开发需要提前安装好Node.js现代浏览器扩展构建链Vite、esbuild、tsup均依赖 Node 运行时pnpm包管理器package.json中通过packageManager: pnpm9.5.0固定了版本建议使用 pnpm 9.x 以保证与 lockfilepnpm-lock.yaml一致Visual Studio Code推荐仓库本身使用了 ESLint、Prettier 风格配置eslint.config.mjs配合 VSCode 可获得格式化与类型检查vue-tsc的最佳体验。项目所有交互式脚本都集中在 package.json 的scripts字段下面每个开发/构建步骤都能在其中找到对应的命令定义。 开发与构建开发Chrome 或 Edge贡献指南提供了两种开发方式任选其一即可。方式一web-ext 自动打开浏览器# 安装依赖 pnpm install # 建立一个用家账户资料夹用于扩展存储登录状态 mkdir web-ext-profile # 运行项目 pnpm dev # 执行该命令后会自动打开一个新的 Chrome 窗口并访问 Bilibili 网站 pnpm start:chromium要点说明mkdir web-ext-profile创建的是一个本地浏览器 Profile 目录用于持久化扩展的登录状态避免每次重启调试都重新扫码登录该 Profile 与 package.json 中webExt.run配置一一对应keepProfileChanges: true、chromiumProfile: ./web-ext-profile、startUrl: [https://www.bilibili.com/]这正是pnpm start:chromium内部是web-ext run --source-dir ./extension --targetchromium自动打开 Bilibili 的原因之后每次修改扩展代码web-ext 会自动 reload刷新网页即可看到效果。方式二手动加载未打包扩展unpacked# 安装依赖 pnpm install # 运行项目 pnpm dev然后在浏览器中操作Chrome 地址栏输入chrome://extensionsEdge 输入edge://extensions打开开发者模式Developer Mode点击加载已解压的扩展程序Load unpacked在浏览器中加载生成的extension/文件夹每次修改代码后需要点击 Extensions Reloader 之类的扩展重载按钮并刷新页面确认改动生效。extension/目录正是pnpm dev的产出开发模式下 Vite 在http://localhost:3303提供热更新服务端口定义见 scripts/utils.ts 的port同时 scripts/prepare.ts 会为options与popup两个页面生成 stubindex.html以接入 Vite并监听src/**/*.html、src/manifest.ts、package.json的变更自动重写 manifest。构建Chrome 或 Edgepnpm build随后将extension/目录下的文件打包即可例如pnpm pack会调用pack:zip生成extension.zip。pnpm build的定义是cross-env NODE_ENVproduction run-s clear build:web build:prepare build:js build:bg即依次执行步骤脚本作用clearrimraf --glob extension extension.*清理旧的构建产物build:webvite build构建 Vue 页面options/popupbuild:prepareesno scripts/prepare.ts拷贝 assets、生成 manifest.jsonbuild:jsvite build --config vite.config.content.ts构建 contentScript 与 inject 脚本build:bgtsup打包 background 服务其中 manifest.json 由 src/manifest.ts 动态生成扩展名称为BewlyBewly开发模式下带Dev后缀、版本号取自 package.json且包含content_scripts匹配的*://www.bilibili.com/*、*://search.bilibili.com/*、*://space.bilibili.com/*等 Bilibili 域名。开发Firefox方式一web-ext 自动打开浏览器# 安装依赖 pnpm install # 建立用家账户资料夹用于扩展存储登录状态 mkdir web-ext-profile # 运行项目 pnpm dev # 执行后自动打开新的 Firefox 窗口并访问 Bilibili 网站 pnpm start:firefox注意pnpm start:firefox内部为web-ext run --source-dir ./extension-firefox --targetfirefox-desktop读取的是 Firefox 专用产物目录extension-firefox/。要生成该目录需要以FIREFOXtrue环境变量运行pnpm dev即下一个命令pnpm dev-firefox。方式二about:addons 临时加载# 安装依赖 pnpm install # 运行项目Firefox 模式 pnpm dev-firefox然后在浏览器地址栏输入about:addons点击Extensions再点击Debug Add-ons调试附加组件在浏览器中加载生成的extension-firefox/文件夹。pnpm dev-firefox的定义是npm run clear-firefox cross-env NODE_ENVdevelopment FIREFOXtrue run-p dev:*关键在FIREFOXtrue这个环境变量贯穿整个构建链——scripts/utils.ts 中的isFirefox判断、scripts/prepare.ts 与 scripts/manifest.ts 的输出目录选择都会切换到extension-firefox/。构建Firefoxpnpm build-firefox随后打包extension-firefox/目录下的文件pnpm pack会生成extension-firefox.zip。Firefox 与 Chrome 的产物差异可以从源码中直接印证主要有三处background 模型不同src/manifest.ts 中Chrome 使用service_worker而 Firefox与 Safari使用background.scripts源码注释还特别说明在 Firefox 中把persistent设为true会报错Manifest V3 限制权限与 API 不同Firefox 需要额外的webRequest、webRequestBlocking、cookies权限src/manifest.ts且declarativeNetRequest规则集assets/rules.json只在 Chromium 侧启用CSP 与浏览器特定设置Firefox 需配置browser_specific_settings.gecko.idaddonbewlybewly.com其extension_pages的 CSP 也不带开发用的localhost放行。 贡献规范分支策略贡献指南明确了分支使用约定永久分支Main用于执行 bug 修复、新功能开发、性能改进以及对国际化i18n语言文件的修改临时分支feat/提交新功能的分支doc/专门用于修文档、无功能变更的分支fix/专门用于修复 dev 分支上 bug 的分支。从仓库状态看docs/下同时维护着四份贡献指南CONTRIBUTING.md、CONTRIBUTING-cmn_CN.md、CONTRIBUTING-cmn_TW.md、CONTRIBUTING-jyut.md修改文档时应当走doc/分支并在 PR 中说明文档变更范围。Commit 消息规范提交信息遵循 Angular Commit Message Guidelines 的约定式提交Conventional Commits核心类型如下类型含义feat新功能fix修复 bugdocs文档更新style不影响代码语义的改动空白、格式、缺失分号等refactor代码重构test新增或更新测试chore对构建过程或工具链的更改perf性能改进ci持续集成/交付更改指南同时鼓励添加scope范畴与footer脚注示例格式为fix(dock): xxx 变更描述 相关 PRurl仓库侧的自动化也与此呼应simple-git-hooks配置了pre-commit钩子执行pnpm lint-staged而lint-staged对所有暂存文件运行eslint --fix见 package.json保证每个提交都通过代码风格检查。i18n 多语言维护要点贡献指南对翻译工作提出两条明确要求遇到不熟悉的语言时可以用另一种自己会翻译的语言来完成翻译并在 PR 中明确说明你无法翻译的是哪种语言交由维护者或其他贡献者补齐必须手动维护 i18n 语言文件禁止使用i18n Ally或其他扩展来维护。原因很实际——自动工具维护会导致翻译内容被放到不确定的位置甚至删除原有代码注释。仓库的语言文件位于 src/_locales/ 下与四种文档语言一一对应en.ymlEnglish同时是 src/utils/i18n.ts 中的fallbackLocalecmn-CN.yml简体中文cmn-TW.yml正体中文jyut.yml廣東話这些 YAML 文件由 vite.config.ts 中的VueI18nPlugininclude: [r(./src/_locales/**)]在构建时打包进产物因此新增翻译时只需在四个文件中同步添加同一 key 即可无需改动组件代码——这也正是手动维护模式的工程基础。新增语言文案时应确保四个文件以及所有组件内通过t()/$t()引用的 key保持一致否则会回退到英文。小结BewlyBewly 的贡献流程可以概括为一条主线pnpm install安装依赖 →pnpm devChrome或pnpm dev-firefoxFirefox实时调试 →pnpm build/pnpm build-firefox产出可打包目录 → 按feat/、fix/、doc/分支与约定式提交规范提交 PR。其中双端构建差异由FIREFOX/SAFARI环境变量驱动见 scripts/utils.tsi18n 则坚持四语言文件手动同步维护。如果希望进一步深入构建细节可以继续阅读 scripts/prepare.ts、scripts/manifest.ts 与 src/manifest.ts 的源码实现。赞分享前端【免费下载链接】BewlyBewlyJust make a few small changes to your Bilibili homepage. (English | 简体中文 | 正體中文 | 廣東話)项目地址https://gitcode.com/gh_mirrors/be/BewlyBewly点击查看免费下载相关推荐asdf 文档站点贡献指南VitePress 环境搭建、i18n 多语言维护与发布流程详解asdf 文档站点贡献指南VitePress 环境搭建、i18n 多语言维护与发布流程详解 导读 本文基于 asdf 仓库的 日语版文档贡献指南 https:CLI开发工具BewlyBewly 贡献指南深度解析从环境搭建、Chrome/Firefox 扩展开发到协作规范全流程BewlyBewly 贡献指南深度解析从环境搭建、Chrome/Firefox 扩展开发到协作规范全流程 本指南以仓库官方文档 docs/CONTRIBUTI前端BewlyBewly 开发与贡献指南从环境搭建、多浏览器构建到提交规范BewlyBewly 开发与贡献指南从环境搭建、多浏览器构建到提交规范 BewlyBewly 是一款通过内容脚本与样式适配对 Bilibili 主页进行深度改前端上一篇GitHub_Trending/chef5/chef类型定义types.ts与代码可维护性保障下一篇fnlp性能优化指南模型压缩与并行计算提升处理速度300%创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

25个DeepSeek降AI指令实测:TaoToken统一Key下哪些真有效哪些是忽悠
25个DeepSeek降AI指令实测:TaoToken统一Key下哪些真有效哪些是忽悠

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 3:36:28

SQL Server内网连接访问全攻略:从TCP/IP到证书信任的完整配置指南
SQL Server内网连接访问全攻略:从TCP/IP到证书信任的完整配置指南

搞数据库的人大概都遇到过这个场景:开发环境里 SQL Server 跑得好好的,本地写查询一点问题没有,可一拿到内网里另一台电脑上,要么连不上,要么弹出各种奇怪的证书报错。其实“SQL Server 数据库可以在内网连接访问”这句… · 2026/9/25 3:36:28

SpringBoot2+Vue3图书馆管理系统实战:从数据建模到前后端部署
SpringBoot2+Vue3图书馆管理系统实战:从数据建模到前后端部署

前两年做图书馆相关项目时,我接手了一个很典型的业务场景:疫情影响下,图书馆恢复开放但借阅方式全变了——读者不能直接进书库翻找,要预约入馆、要控制同时在馆人数、借书还书要尽量无接触,管理员还要登记读者健康信息… · 2026/9/25 3:36:27

PX4 Tailsitter VTOL 尾坐式垂直起降固定翼:机架选型、配置与过渡调参指南
PX4 Tailsitter VTOL 尾坐式垂直起降固定翼:机架选型、配置与过渡调参指南

嵌入式物联网机器人自动驾驶智能硬件 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot 点击查看 免费下载 导读 Tailsitter VTOL(尾坐式垂直起降机)是 PX4 支持的三大 V… · 2026/9/25 4:02:36

Agent高频调用翻车实录:OpenRouter+Nemotron 3.5 Lightning调用层工程化实践
Agent高频调用翻车实录:OpenRouter+Nemotron 3.5 Lightning调用层工程化实践

1. 从一次 Agent 高频调用翻车说起先说个真实场景。前段时间我帮一个团队调一套 Agent 工作流,任务本身不复杂:让智能体自动完成"读文档、抽要点、调工具、写回结果"这一整条链路。单次跑没问题,但只要把并发拉到几十路、让它连续跑… · 2026/9/25 4:02:36

cuDF Streaming 底层运行库详解:libcudf-streaming 打包、安装与 load_library 加载机制
cuDF Streaming 底层运行库详解:libcudf-streaming 打包、安装与 load_library 加载机制

数据分析数据工程机器学习 【免费下载链接】cudf cuDF - GPU DataFrame Library 项目地址: https://gitcode.com/gh_mirrors/cu/cudf 点击查看 免费下载 本文围绕 python/libcudf_streaming 目录下的官方 README 及其配套源码展开,讲清楚 cuDF 生态中 … · 2026/9/25 4:02:30

华硕笔记本winload.efi报错的UEFI固件层根因与修复
华硕笔记本winload.efi报错的UEFI固件层根因与修复

1. 项目概述:这不是一次普通重装,而是一场UEFI固件层的精准手术华硕笔记本重装Win10时卡在“winload.efi缺失或损坏”——这句话我过去三年在售后工单里见过至少273次。它不是蓝屏,不是黑屏,而是在启动画面刚亮起、华硕Logo还没完… · 2026/9/25 4:02:30

44101 ns 降至 1618 ns、分配从 732 次降至 3 次:Tekton Pipeline 依赖库 go-openapi/swag 的 mangling 命名转换基准测试与池化优化全记录
44101 ns 降至 1618 ns、分配从 732 次降至 3 次:Tekton Pipeline 依赖库 go-openapi/swag 的 mangling 命名转换基准测试与池化优化全记录

云原生CI/CDDevOps后端 【免费下载链接】pipeline A cloud-native Pipeline resource. 项目地址: https://gitcode.com/gh_mirrors/pipelin/pipeline 点击查看 免费下载 本文以仓库中 vendor/github.com/go-openapi/swag/mangling/BENCHMARK.md 这份基准记录为主体… · 2026/9/25 4:02:30

Java停车场管理系统实战:Spring Boot+MySQL+计费并发
Java停车场管理系统实战:Spring Boot+MySQL+计费并发

简介:这是一份基于Java的停车场管理系统设计与实现的毕业设计文档,面向计算机相关专业学生、开发者及需要快速搭建同类管理系统的项目人员,系统性地解决城市停车难、车位管理效率低等问题。文档涵盖课题背景与意义、国内外研究现状、可行性分… · 2026/9/25 4:02:29

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码