forked from extern/bruno
92 lines
2.8 KiB
Markdown
92 lines
2.8 KiB
Markdown
[English](/contributing.md) | [Українська](/contributing_ua.md) | [Русский](/contributing_ru.md) | [Türkçe](/contributing_tr.md) | **Deutsch** | [Français](/contributing_fr.md) | [বাংলা](docs/contributing/contributing_bn.md)
|
|
|
|
## Lass uns Bruno noch besser machen, gemeinsam !!
|
|
|
|
Ich freue mich, dass Du Bruno verbessern möchtest. Hier findest Du eine Anleitung, mit der Du Bruno auf Deinem Computer einrichten kannst.
|
|
|
|
### Technologie Stack
|
|
|
|
Bruno ist mit Next.js und React erstellt. Außerdem benötigen wir electron für die Desktop Version (die lokale Sammlungen unterstützt).
|
|
|
|
Bibliotheken die wir benutzen
|
|
|
|
- CSS - Tailwind
|
|
- Code Editoren - Codemirror
|
|
- State Management - Redux
|
|
- Icons - Tabler Icons
|
|
- Formulare - formik
|
|
- Schema Validierung - Yup
|
|
- Request Client - axios
|
|
- Dateisystem Watcher - chokidar
|
|
|
|
### Abhängigkeiten
|
|
|
|
Du benötigst [Node v18.x oder die neuste LTS Version](https://nodejs.org/en/) und npm 8.x. Wir benutzen npm workspaces in dem Projekt.
|
|
|
|
### Lass uns coden
|
|
|
|
Eine Anleitung zum Ausführen einer lokalen Entwicklungsumgebung findest Du in [development.md](docs/development_de.md).
|
|
|
|
### Pull Request erstellen
|
|
|
|
- Bitte halte die PRs klein und begrenzt auf eine Sache
|
|
- Bitte halte Dich beim Erstellen eines Branches an das folgende Format
|
|
- feature/[feature name]: Dieser Branch soll Änderungen für ein bestimmtes Feature enthalten
|
|
- Beispiel: feature/dark-mode
|
|
- bugfix/[bug name]: Dieser Branch soll ausschließlich Bugfixes für einen bestimmten Bug enthalten
|
|
- Beispiel: bugfix/bug-1
|
|
|
|
## Entwicklung
|
|
|
|
Bruno wird als Desktop-Anwendung entwickelt. Um die App zu starten, musst Du zuerst die Next.js App in einem Terminal ausführen und anschließend in einem anderen Terminal die Electron-App.
|
|
|
|
### Abhängigkeiten
|
|
|
|
- NodeJS v18
|
|
|
|
### Lokales Entwickeln
|
|
|
|
```bash
|
|
# use nodejs 18 version
|
|
nvm use
|
|
|
|
# install deps
|
|
npm i --legacy-peer-deps
|
|
|
|
# build graphql docs
|
|
npm run build:graphql-docs
|
|
|
|
# build bruno query
|
|
npm run build:bruno-query
|
|
|
|
# run next app (terminal 1)
|
|
npm run dev:web
|
|
|
|
# run electron app (terminal 2)
|
|
npm run dev:electron
|
|
```
|
|
|
|
### Troubleshooting
|
|
|
|
Es kann sein, dass Du einen `Unsupported platform`-Fehler bekommst, wenn Du `npm install` ausführst. Um dies zu beheben, musst Du `node_modules` und `package-lock.json` löschen und `npm install` erneut ausführen. Dies sollte alle notwendigen Pakete installieren, die zum Ausführen der Anwendung benötigt werden.
|
|
|
|
```shell
|
|
# Delete node_modules in sub-directories
|
|
find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do
|
|
rm -rf "$dir"
|
|
done
|
|
|
|
# Delete package-lock in sub-directories
|
|
find . -type f -name "package-lock.json" -delete
|
|
```
|
|
|
|
### Testen
|
|
|
|
```bash
|
|
# bruno-schema
|
|
npm test --workspace=packages/bruno-schema
|
|
|
|
# bruno-lang
|
|
npm test --workspace=packages/bruno-lang
|
|
```
|