---
title: Frontend-Befehle
icon: Terminal
---

## Nützliche Befehle

### Die App starten

```bash
npx nx start twenty-front
```

### GraphQL-Schema basierend auf API-GraphQL-Schema regenerieren

```bash
npx nx run twenty-front:graphql:generate --configuration=metadata
```

ODER

```bash
npx nx run twenty-front:graphql:generate
```

### Lint

```bash
npx nx run twenty-front:lint # Füge --fix hinzu, um Lint-Fehler zu beheben
```

## Übersetzungen

```bash
npx nx run twenty-front:lingui:extract
npx nx run twenty-front:lingui:compile
```

### Test

```bash
npx nx run twenty-front:test # führe JEST-Tests aus
npx nx run twenty-front:storybook:serve:dev # führe Storybook aus
npx nx run twenty-front:storybook:test # führe Tests aus # benötigt yarn storybook:serve:dev als laufenden Prozess
npx nx run twenty-front:storybook:coverage # benötigt yarn storybook:serve:dev als laufenden Prozess
```

## Technologie-Stack

Das Projekt hat einen sauberen und einfachen Stack mit minimalem Boilerplate-Code.

**App**

* [React](https://react.dev/)
* [Apollo](https://www.apollographql.com/docs/)
* [GraphQL Codegen](https://the-guild.dev/graphql/codegen)
* [Jotai](https://jotai.org/)
* [TypeScript](https://www.typescriptlang.org/)

**Tests**

* [Jest](https://jestjs.io/)
* [Storybook](https://storybook.js.org/)

**Tools**

* [Yarn](https://yarnpkg.com/)
* [Craco](https://craco.js.org/docs/)
* [Oxlint](https://oxc.rs/docs/guide/usage/linter.html)

## Architektur

### Routing

[React Router](https://reactrouter.com/) übernimmt das Routing.

To avoid unnecessary [re-renders](/l/de/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders) all the routing logic is in a `useEffect` in `PageChangeEffect`.

### Zustandsverwaltung

[Jotai](https://jotai.org/) übernimmt die Zustandsverwaltung.

Siehe [Best Practices](/l/de/developers/contribute/capabilities/frontend-development/best-practices-front#state-management) für mehr Informationen zur Zustandsverwaltung.

## Tests

[Jest](https://jestjs.io/) dient als Werkzeug für Unittests, während [Storybook](https://storybook.js.org/) für Komponententests verwendet wird.

Jest ist hauptsächlich für das Testen von Dienstprogrammfunktionen und nicht für die Komponenten selbst gedacht.

Storybook dient zum Testen des Verhaltens isolierter Komponenten sowie zur Darstellung des Designsystems.
