Sono felice di vedere che hai intenzione di migliorare Bruno. Di seguito, troverai le regole e le guide per ripristinare Bruno sul tuo computer.
Bruno è costruito utilizzando Next.js e React. Utilizziamo anche Electron per incorporare la versione desktop (che consente raccolte locali).
Le librerie che utilizziamo sono:
- CSS - Tailwind
- Code Editors - Codemirror
- State Management - Redux
- Icons - Tabler Icons
- Forms - formik
- Schema Validation - Yup
- Request Client - axios
- Filesystem Watcher - chokidar
Hai bisogno di Node v18.x o dell'ultima versione LTS di npm 8.x. Utilizziamo gli spazi di lavoro npm (npm workspaces) in questo progetto.
Si prega di fare riferimento alla documentazione di sviluppo per le istruzioni su come avviare l'ambiente di sviluppo locale.
- Si prega di mantenere le Pull Request (PR) brevi e concentrate su un singolo obiettivo.
- Si prega di seguire il formato di denominazione dei rami.
- feature/[feature name]: Questo ramo dovrebbe contenere una specifica funzionalità.
- Esempio: feature/dark-mode
- bugfix/[bug name]: Questo ramo dovrebbe contenere solo una soluzione per un bug specifico.
- Esempio: bugfix/bug-1
- feature/[feature name]: Questo ramo dovrebbe contenere una specifica funzionalità.
Bruno è sviluppato come un'applicazione "heavy". È necessario caricare l'applicazione avviando Next.js in una finestra del terminale e quindi avviare l'applicazione Electron in un altro terminale.
- NodeJS v18
# 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
Potresti trovare un errore Unsupported platform
durante l'esecuzione di npm install
. Per risolvere questo problema, ti preghiamo di eliminare la cartella node_modules
, il file package-lock.json
e di seguito nuovamente npm install
. Qeusto dovrebbe installare tutti i pacchetti necessari per avviare l'applicazione.
# 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
# bruno-schema
npm test --workspace=packages/bruno-schema
# bruno-lang
npm test --workspace=packages/bruno-lang