Wir nutzen die Leistungsfähigkeit von pnpm-Arbeitsbereichen, um dafür zu sorgen, dass unser Monorepo reibungsloser läuft als ein frisch gebutterter Pfannkuchen.
Klonen Sie das Hey-Monorepo auf Ihren lokalen Computer:
git clone [email protected]:/repos/hey/hey.git
Rockst du ein macOS? Mit Homebrew können Sie beides bekommen, wie ein echter Braumeister:
brew install nvm pnpm
Beschwören Sie mit nvm
die magische Version von Node.js, die Sie benötigen:
nvm install
Teleportieren Sie sich zum Stammverzeichnis des Repositorys und lassen Sie pnpm seine Abhängigkeitsmagie versprühen:
pnpm install
.env
Datei Kanalisieren Sie Ihren inneren Zauberer und zaubern Sie eine .env
Datei aus der .env.example
-Vorlage für jedes Paket und jede App, die sie benötigt. Vergessen Sie nicht, die notwendigen Umgebungsvariablen einzustreuen!
cp .env.example .env
Vergessen Sie nicht, Nachahmer zu spielen und die Erstellung dieser .env
Datei für jedes Paket und jede App zu wiederholen, die sie benötigt. Konsistenz ist der Schlüssel!
Wenn alle Sterne übereinstimmen und alles an seinem Platz ist, starten Sie die Anwendung im Entwicklungsmodus:
pnpm dev
Bereit, die Anwendung zu erstellen? Führen Sie einfach diesen Befehl aus:
pnpm build
Möchten Sie während der Entwicklung Tests durchführen? So machen Sie es:
pnpm test
Wir verwenden ts-prune
um ungenutzte Exporte und Helfer, die in unserer Codebasis lauern, aufzuspüren und zu entfernen. Nur als Hinweis: Sie müssen diese Aufgabe für jedes Paket und jede App manuell ausführen. Viel Spaß beim Beschneiden!
cd apps/web ; npx ts-prune -i generated.ts
Zeit, unseren Abhängigkeiten ein neues Gesicht zu geben! Wir verlassen uns auf die magischen Kräfte von pnpm
um alles auf dem neuesten Stand zu halten und auf dem neuesten Stand zu bleiben.
script/clean-branches
script/update-dependencies
Wir vertrauen darauf, dass pnpm
unsere Sperrdatei frisch und fabelhaft hält!
script/clean-branches
script/update-lock-file
Wir verwenden Ripgrep, um in der Codebasis nach Text zu suchen. Es ist, als hätten grep
und ag
ein Baby bekommen, und dieses Baby ist zu einem Geschwindigkeitsdämon herangewachsen!
Installieren Sie es über Homebrew:
brew install ripgrep
Suchen Sie nach Text in der Codebasis:
rg " const Verified "
In apps/web
haben wir einen Bundle-Analysator, der Aufschluss über die Größe und den Inhalt unserer Produktionspakete gibt. Es ist, als hätten Sie einen Röntgenblick für Ihren Code!
Um diese Ausgabe zu generieren, führen Sie Folgendes aus:
cd apps/web
ANALYZE=true pnpm build
Starten Sie diesen Befehl, um das apps/web
zu erstellen, und beobachten Sie, wie sich auf magische Weise drei Browserfenster öffnen, in denen jeweils Bundle-Details für Node-, Edge- und Client-Bundles angezeigt werden. Das Client-Bundle ist der Superheld für die Seitenleistung, während alle Bundles eine entscheidende Rolle bei der Entwicklung und Build-Leistung spielen.
Wir bitten alle Mitwirkenden und Teammitglieder, unseren Verhaltenskodex zu befolgen. Betrachten Sie es als das goldene Regelwerk unserer Community – spielen Sie nett und sorgen Sie für gute Stimmung!
Dieses Projekt ist Open-Source unter der AGPL-3.0 -Lizenz. Alle wichtigen Details finden Sie in der LICENSE-Datei. Es ist ein echter Pageturner!
Wir ? Du zum Mond und zurück! Ihre Unterstützung ist wie ein nie versiegender Kaffeevorrat für unseren Code. Vielen Dank, dass Sie Hey zum großartigsten Ort im Universum gemacht haben!
?