# 代码风格与贡献指南 欢迎来到 LobeChat 的代码风格与贡献指南。本指南将帮助您理解我们的代码规范和贡献流程,确保代码的一致性和项目的顺利进行。 ## TOC - [代码风格](#代码风格) - [ESLint](#eslint) - [Prettier](#prettier) - [remarklint](#remarklint) - [stylelint](#stylelint) - [贡献流程](#贡献流程) - [Gitmoji](#gitmoji) - [Semantic Release](#semantic-release) - [Commitlint](#commitlint) - [如何贡献](#如何贡献) ## 代码风格 在 LobeChat 中,我们使用 `@lobehub/lint` 程序包来统一代码风格。该程序包内置了 `ESLint`、`Prettier`、`remarklint` 和 `stylelint` 的配置,以确保我们的 JavaScript、Markdown 和 CSS 文件遵循相同的编码标准。 ### ESLint 我们的项目使用 ESLint 来检查 JavaScript 代码中的问题。您可以在项目根目录下找到 `.eslintrc.js` 文件,其中包含了我们对 `@lobehub/lint` 的 ESLint 配置的扩展和自定义规则。 为了与 Next.js 框架兼容,我们在配置中添加了 `plugin:@next/next/recommended`。此外,我们禁用了一些规则,以适应我们项目的特定需求。 请在提交代码前运行 ESLint,以确保您的代码符合项目规范。 ### Prettier Prettier 负责代码格式化,以保证代码的一致性。您可以在 `.prettierrc.js` 中找到我们的 Prettier 配置,它是从 `@lobehub/lint` 导入的。 在保存文件时,建议您配置您的编辑器以自动运行 Prettier,或者在提交前手动运行它。 ### remarklint 对于 Markdown 文件,我们使用 remarklint 来确保文档格式的统一。您可以在项目中找到相应的配置文件。 ### stylelint 我们使用 stylelint 来规范 CSS 代码的风格。在 `stylelint` 的配置文件中,我们基于 `@lobehub/lint` 的配置进行了一些自定义规则的调整。 确保您的样式代码在提交前通过了 stylelint 的检查。 ## 贡献流程 LobeChat 采用 gitmoji 和 semantic release 作为我们的代码提交和发布流程。 ### Gitmoji 在提交代码时,请使用 gitmoji 来标注您的提交信息。这有助于其他贡献者快速理解您提交的内容和目的。 Gitmoji commit messages 使用特定的 emoji 来表示提交的类型或意图。以下是一个示例: ``` 📝 Update README with contribution guidelines - Added section about code style preferences - Included instructions for running tests - Corrected typos and improved formatting ``` 在这个示例中,📝 emoji 代表了文档的更新。提交信息清晰地描述了更改的内容,提供了具体的细节。 ### Semantic Release 我们使用 semantic release 来自动化版本控制和发布流程。请确保您的提交信息遵循 semantic release 的规范,这样当代码合并到主分支后,系统就可以自动创建新的版本并发布。 ### Commitlint 为了确保提交信息的一致性,我们使用 `commitlint` 来检查提交信息格式。您可以在 `.commitlintrc.js` 配置文件中找到相关规则。 在您提交代码之前,请确保您的提交信息遵循我们的规范。 ### 如何贡献 1. Fork 项目到您的账户。 2. 创建一个新的分支进行开发。 3. 开发完成后,确保您的代码通过了上述的代码风格检查。 4. 提交您的更改,并使用合适的 gitmoji 标注您的提交信息。 5. 创建一个 Pull Request 到原项目的主分支。 6. 等待代码审查,并根据反馈进行必要的修改。 感谢您遵循这些指导原则,它们有助于我们维护项目的质量和一致性。我们期待您的贡献!