Die folgende Struktur sorgt dafür, dass Pakete optimal mit unserem Monorepo/Nx-Workflow funktionieren.
./package.json
- Alle TanStack-Projekte haben "type": "module", um die Standardauflösung von .js-Dateien auf ESM zu setzen; dies hat keine Auswirkungen auf das Erstellen für CJS
- Es ist auch wichtig, ein "exports"-Feld zu haben
- Aus Gründen der Abwärtskompatibilität sollten Sie auch die Felder "main", "module" und "types" einschließen
- Alle Pakete verfügen über die folgenden Skripte, die von Nx gecacht werden: "test:eslint", "test:types", "test:lib", "build", "test:build"
./tsconfig.json
- Erweitert die tsconfig auf Root-Ebene (z.B. "extends": "../../tsconfig.json")
- Fügen Sie hier alle Framework-spezifischen Optionen und eingeschlossenen Dateien hinzu
./vite.config.ts
./src
- Dieser Ordner sollte nur Code enthalten, der kompiliert und an Benutzer ausgeliefert wird
- Tests sollten nicht in diesem Ordner platziert werden, da sie den ausgelieferten Code aufblähen und den Nx-Cache unbeabsichtigt ungültig machen können
./tests
- Dieser Ordner sollte alle Testdateien enthalten
- Er sollte auch alle Test-Setup-Dateien enthalten, die von diesem Framework benötigt werden