English Contribution Guidelines / Руководство на русском
我们非常感谢你为 ScriptCat 做出贡献!本指南旨在帮助你以更规范的方式向 ScriptCat 提交贡献,因此请务必认真阅读。
在提交 Issue 前,我们建议你先查看 已有的 Issues,以避免重复提交。
ScriptCat 是一个不断发展的项目。如果你在使用过程中发现问题,并且确信这些问题是由 ScriptCat 引起的,欢迎提交 Issue。在提交时,请附带详细的复现步骤和运行环境信息。
我们欢迎你在 Issue 中提出新的功能建议。为了让我们更好地理解你的需求,建议你尽可能详细地描述这个功能,并提供你认为可能的解决方案。
ScriptCat 使用 pnpm 来管理项目依赖。如果你已经安装了npm,以下的命令可以帮助你快速配置开发环境:
# 安装 node.js 依赖
pnpm install我们推荐使用代理来解决 pnpm 的网络问题,而不是使用镜像。
pnpm config set proxy http://127.0.0.1:7890
pnpm config set https-proxy https://127.0.0.1:7890我们希望每一个 commit 都能清晰地描述其目的,每个 commit 应尽可能只包含一个修改。我们的 commit message 格式遵循 gitmoji 规范。例如:
git commit -m "✨ add login feature"这个示例表示添加了新的功能:登录功能。
main 分支是 ScriptCat 的主分支。为了保持代码的完整性,请不要直接修改 main
分支。你应该创建一个新的分支,并在这个分支上进行修改,然后发起一个目标分支为
main 的 Pull Request。Pull Request
的标题请尽量使用中文,以便于自动生成更新日志。
如果你不是 ScriptCat 团队的成员,你可以先 fork 本仓库,然后向本仓库的 main
分支发起 Pull Request。在创建 commit 时,请按照上述 commit message
规范进行。我们将在 code review 完成后将你的贡献合并到主分支。
ScriptCat的文档在另外的仓库中:scriptcat.org,使用 docusaurus进行撰写,这有一些 Markdown 特性可以帮助你。如果你需要在本地预览修改后的文档,可以使用以下命令安装文档依赖并启动dev server:
pnpm install
pnpm startScriptCat 的翻译文件托管在 GitHub 上,欢迎通过 Pull Request 贡献翻译。
- 翻译文件位于
src/locales,每种语言对应一个<语言代码>/translation.json - 改进已有翻译:直接编辑对应语言的
translation.json - 新增语言:在
src/locales/下新建对应语言代码目录(如fr-FR),复制en-US/translation.json作为模板进行翻译,并在src/locales/locales.ts中注册 - 完成后向
main分支提交 Pull Request 即可
ScriptCat 使用 ESLint 来规范代码风格,使用 Vitest 来进行单元测试。你可以使用以下命令来运行:
pnpm test
pnpm run lintScriptCat 的页面开发使用了以下技术:
如果你想在本地运行 ScriptCat,可以使用以下命令:
pnpm run dev
# 请注意,由于未知原因,如果你需要使用隐身窗口,你需要使用下面的命令进行开发
pnpm run dev:noMap如果你想打包扩展,可以使用以下命令:
pnpm run pack在打包前,请确保在dist目录下生成了scriptcat.pem文件。
pnpm run dev之后需要把dist/ext目录里面内容在浏览器扩展里面导入加载,然后开始改代码保存即可,浏览器是实时更新的,但是涉及到manifest.json、service_worker、offscreen、sandbox的改动需要重新加载。