贡献代码
一起构建更好的语言学习产品
启动项目
Fork 项目并克隆到本地。
# 从你的 fork 克隆项目
git clone https://github.com/xxxxx/read-frog.git
# 进入项目目录
cd read-frog
# 启动项目
pnpm dev
Windows 环境变量配置
如果你当前在 Windows 环境,需要在 apps/extension
目录下添加 web-ext.config.ts
文件,显式指定浏览器路径。
// apps/extension/web-ext.config.ts
import { defineWebExtConfig } from 'wxt';
export default defineWebExtConfig({
binaries: {
chrome: "path/to/your/chrome.exe",
firefox: "path/to/your/firefox.exe",
edge: "path/to/your/edge.exe"
}
});
pnpm dev 无法自动加载扩展
如果你使用 Chrome 137 或更高版本,你需要下载 Chrome for Testing 进行开发。 请参考详细说明。
提交代码
创建新的分支
# 如果是新功能
git checkout -b feat/the-feature
# 如果是修复 bug
git checkout -b fix/the-bug
# 如果是文档调整
git checkout -b docs/the-docs
分支合并
当远程分支(main)更新时,会导致我们的 Pull Request 存在冲突,你可以通过提前合并远程分支来解决
# 切到 main 分支
git checkout main
# 同步上游仓库
git pull upstream main
# 切回开发分支
git checkout docs/xxxx
# 同步远程分支
git rebase main
# 手动解决完冲突后,再推送代码
git push origin docs/xxxx
git 同步上游仓库
如果你在同步上游仓库时遇到该错误
fatal: 'upstream' does not appear to be a git repository
fatal: Could not read from remote repository.
请尝试手动添加上游仓库
git remote add upstream https://github.com/mengxi-ream/read-frog
发起 Pull Request
发起 Pull Request 前,需要先添加 changeset
# 添加 changeset
pnpm changeset
# 选择本次调整的 packages
# Which packages would you like to include?...
[] @read-frog/website
[] @read-frog/extension
# 为 packages 选择需要变更的版本类型
# Which packages should have a major bump? (主版本)
( ) all packages
( ) @read-frog/website@0.1.0
( ) @read-frog/extension@0.1.0
# Which packages should have a minor bump? (次要版本)
( ) all packages
( ) @read-frog/website@0.1.0
( ) @read-frog/extension@0.1.0
# The following packages will be patch bumped (补丁版本)
( ) all packages
( ) @read-frog/website@0.1.0
( ) @read-frog/extension@0.1.0
# 提供 summary
Summary >> ....
pnpm changeset
会在 .changeset
文件中生成 [uniqId].md
,可在生成完成后再次调整本次变更的描述。
生成完成后再发起 Pull Request,然后等待合并。
Commit 规范
我们使用 Conventional Commits 规范来编写 commit message。
设置环境变量
在开发扩展时,为了自动加载环境变量,例如开发环境的 API 密钥,您可以在 apps/extension
目录中创建一个 .env.local
文件。
# apps/extension/.env.local
WXT_OPENAI_API_KEY=xxx
WXT_DEEPSEEK_API_KEY=xxx
WXT_OPENROUTER_API_KEY=xxx
在中国大陆跳过谷歌测试
如果你是中国大陆贡献者,那么当你要 push 代码的时候你得用
# MAC
SKIP_FREE_API=true git push
# WINDOWS
$env:SKIP_FREE_API='true'
git push
为什么要这样做呢?因为在你 push 代码的时候会做代码测试,但是谷歌的免费 API 在国内无法访问,这会导致测试失败,从而 push 失败,我们通过设置 SKIP_FREE_API
环境变量来跳过谷歌测试。