2024-04-15 19:21:40 +02:00
|
|
|
|
[English](/contributing.md) | [Українська](./contributing_ua.md) | [Русский](./contributing_ru.md) | [Türkçe](./contributing_tr.md) | [Deutsch](./contributing_de.md) | [Français](./contributing_fr.md) | [Português (BR)](./contributing_pt_br.md) | [বাংলা](./contributing_bn.md) | [Español](./contributing_es.md) | [Română](./contributing_ro.md) | [Polski](./contributing_pl.md) | **简体中文** | [正體中文](docs/contributing/contributing_zhtw.md)
|
2023-12-26 17:15:54 +01:00
|
|
|
|
|
|
|
|
|
## 让我们一起改进 Bruno!
|
|
|
|
|
|
|
|
|
|
很高兴看到您考虑改进 Bruno。以下是获取 Bruno 并在您的电脑上运行它的规则和指南。
|
|
|
|
|
|
|
|
|
|
### 使用的技术
|
|
|
|
|
|
|
|
|
|
Bruno 基于 NextJs 和 React 构建。我们使用 Electron 来封装桌面版本。
|
|
|
|
|
|
|
|
|
|
我们使用的库包括:
|
|
|
|
|
|
|
|
|
|
- CSS - Tailwind
|
|
|
|
|
- 代码编辑器 - Codemirror
|
|
|
|
|
- 状态管理 - Redux
|
|
|
|
|
- 图标 - Tabler Icons
|
|
|
|
|
- 表单 - formik
|
|
|
|
|
- 模式验证 - Yup
|
|
|
|
|
- 请求客户端 - axios
|
|
|
|
|
- 文件系统监视器 - chokidar
|
|
|
|
|
|
|
|
|
|
### 依赖项
|
|
|
|
|
|
|
|
|
|
您需要 [Node v18.x 或最新的 LTS 版本](https://nodejs.org/en/) 和 npm 8.x。我们在这个项目中也使用 npm 工作区(_npm workspaces_)。
|
|
|
|
|
|
|
|
|
|
## 开发
|
|
|
|
|
|
|
|
|
|
Bruno 是作为一个 _client lourd(重客户端)_ 应用程序开发的。您需要在一个终端中启动 nextjs 来加载应用程序,然后在另一个终端中启动 Electron 应用程序。
|
|
|
|
|
|
|
|
|
|
### 依赖项
|
|
|
|
|
|
|
|
|
|
- NodeJS v18
|
|
|
|
|
|
|
|
|
|
### 本地开发
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# 使用 node 版本 18
|
|
|
|
|
nvm use
|
|
|
|
|
|
|
|
|
|
# 安装依赖项
|
|
|
|
|
npm i --legacy-peer-deps
|
|
|
|
|
|
|
|
|
|
# 构建 graphql 文档
|
|
|
|
|
npm run build:graphql-docs
|
|
|
|
|
|
|
|
|
|
# 构建 bruno 查询
|
|
|
|
|
npm run build:bruno-query
|
|
|
|
|
|
|
|
|
|
# 启动 next(终端 1)
|
|
|
|
|
npm run dev:web
|
|
|
|
|
|
|
|
|
|
# 启动重客户端(终端 2)
|
|
|
|
|
npm run dev:electron
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 故障排除
|
|
|
|
|
|
|
|
|
|
在运行 npm install 时,您可能会遇到 Unsupported platform 错误。为了解决这个问题,请删除 node_modules 目录和 package-lock.json 文件,然后再次运行 npm install。这应该会安装运行应用程序所需的所有包。
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
# 删除子目录中的 node_modules 目录
|
|
|
|
|
find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do
|
|
|
|
|
rm -rf "$dir"
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# 删除子目录中的 package-lock.json 文件
|
|
|
|
|
find . -type f -name "package-lock.json" -delete
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 测试
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# bruno-schema
|
|
|
|
|
npm test --workspace=packages/bruno-schema
|
|
|
|
|
|
|
|
|
|
# bruno-lang
|
|
|
|
|
npm test --workspace=packages/bruno-lang
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 提交 Pull Request
|
|
|
|
|
|
|
|
|
|
- 请保持 PR 精简并专注于单一目标
|
|
|
|
|
- 请遵循分支命名格式:
|
|
|
|
|
- feature/[feature name]:该分支应包含特定功能
|
|
|
|
|
- 例如:feature/dark-mode
|
|
|
|
|
- bugfix/[bug name]:该分支应仅包含特定 bug 的修复
|
2024-05-13 12:14:27 +02:00
|
|
|
|
- 例如:bugfix/bug-1
|