Architektur-Überblick
Dieser Abschnitt bietet einen kurzen Überblick über den Aufbau von NDM.
Wie wurde die NDM-CLI erstellt?
Wir haben
und die Bibliothek „Commander“ verwendet, um das Command-Line-Interface-Tool (CLI) zu entwickeln.
Auch viele andere CLI-Tools wurden mit TypeScript erstellt:
- VS Code CLI
- Vercel CLI
- Netlify CLI
- Firebase CLI
- und viele weitere
Entwicklung
Wir verwenden hauptsächlich „pnpm“, da es sicherer und schneller ist als „npm“. Wir haben festgelegt, dass alle Abhängigkeiten (Dependencies) älter als drei Tage sein müssen. Dies geschieht aus Sicherheitsgründen, da die meisten infizierten Pakete nach etwa drei Tagen entfernt werden.
Für die Versionsverwaltung nutzen wir Git und GitHub.
Frontend
Für die Erstellung unserer Webseite haben wir React verwendet. Weitere Informationen finden Sie in der Frontend-Dokumentation.
Backend
Für das Backend und den gesamten Server haben wir Python eingesetzt. Weitere Informationen finden Sie in der Backend-Dokumentation.
Warum diese Struktur?
Wir haben uns entschieden, NDM in verschiedene Teile aufzuteilen:
- Das CLI-Tool
- Das Backend/den Server
Der Grund hierfür ist, dass das Paket in einer Sandbox ausgeführt werden muss. Die Einrichtung der Sandbox erfordert zusätzliche Schritte. Zudem kann das Paket – wenn es in einer Sandbox auf einem Server ausgeführt wird – keine Auswirkungen auf Ihr eigenes Gerät haben.
Dies erhöht das Vertrauen in NDM und verbessert die Sicherheit im Vergleich zu einer Sandbox-Ausführung auf Ihrem lokalen Gerät.
Das CLI-Tool fungiert als Client, während auf dem Server die Ausführung des Pakets sowie die eigentliche Verarbeitung stattfinden.