commit 739cd813d4f6841089000efe567c2ab4f669dc9a Author: miqlangelo Date: Mon May 5 08:04:11 2025 +0200 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..600e365 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +**/node_modules \ No newline at end of file diff --git a/docs/01 - Deno Installation.md b/docs/01 - Deno Installation.md new file mode 100644 index 0000000..e40c2f8 --- /dev/null +++ b/docs/01 - Deno Installation.md @@ -0,0 +1,272 @@ +# 📌 Deno Installation & VSCode Setup + +Deno ist eine moderne Alternative zu Node.js, die **TypeScript nativ unterstützt**, auf **Sicherheit** fokussiert ist und ein **einfaches Modulmanagement** bietet. + +## 📖 Inhaltsverzeichnis + +- [🚀 Installation von Deno](#🚀-installation-von-deno) + - [Windows](#windows) + - [macOS](#macos) +- [🔧 Einrichtung in VSCode](#🔧-einrichtung-in-vscode) +- [🛠️ Wichtige CLI-Befehle](#🛠️-wichtige-cli-befehle) +- [🏗️ Ein neues Deno-Projekt anlegen](#🏗️-ein-neues-deno-projekt-anlegen) +- [📦 Packages in Deno nutzen](#📦-packages-in-deno-nutzen) +- [🗝️ Berechtigung](#🗝️-berechtigung) +- [🐞 Häufige Probleme & Lösungen](#🐞-häufige-probleme--lösungen) +- [🎯 Fazit](#🎯-fazit) + +--- + +## 🚀 Installation von Deno + +### Windows + +1. **Deno per PowerShell installieren**: + + ```powershell + irm https://deno.land/install.ps1 | iex + ``` + + Alternativ kannst du Deno über [Chocolatey](https://community.chocolatey.org/packages/deno) installieren: + + ```powershell + choco install deno + ``` + +2. **Den Pfad zu Deno prüfen**: + + ```powershell + echo $env:PATH + ``` + +3. Falls der **Pfad nicht gesetzt** ist, diesen manuell zur Umgebungsvariable `Path` hinzufügen: + `C:\Users\\.deno\bin` + + Wenn VSCode weiterhin nicht deno erkennt, muss dies manuell in den VSCode Settings hinzugefügt werden: + + - Öffne die **User Settings (JSON)** + - über **(`Strg + P` / `Cmd + P` / `F1`)** `>Preferences: Open User Settings (JSON)` + - Suche nach `terminal.integrated.env.windows` + +
+ + ```json + "terminal.integrated.env.windows": { + "PATH": "C:\\Users\\\\.deno\\bin;${env:PATH}" + } + ``` + + Falls der Eintrag noch nicht vorhanden ist, füge ihn einfach hinzu und starte VSCode neu. + +--- + +### macOS + +1. **Deno über Homebrew installieren**: + + ```sh + brew install deno + ``` + + Alternativ kannst du Deno über curl installieren: + + ```sh + curl -fsSL https://deno.land/install.sh | sh + ``` + +2. **Den Pfad zu Deno prüfen**: + + ```sh + echo $DENO_INSTALL + ``` + + Falls der **Pfad nicht gesetzt** ist, füge ihn zu `.zshrc` oder `.bashrc` hinzu: + + ```sh + export DENO_INSTALL="$HOME/.deno" + export PATH="$DENO_INSTALL/bin:$PATH" + ``` + +3. Änderungen übernehmen: + ```sh + source ~/.zshrc # oder ~/.bashrc + ``` + +
+ +--- + +
+Nach der Installation sollte die ausführbare Datei deno in Ihrem Systempfad verfügbar sein. + +Sie können die Installation überprüfen, indem Sie das Programm ausführen: + +
+ +```sh +$ deno --version + +deno 2.1.9 (stable, release, x86_64-pc-windows-msvc) +v8 13.0.245.12-rusty +typescript 5.6.2 +``` + +
+ +--- + +## 🔧 Einrichtung in VSCode + +1. **VSCode-Erweiterung für Deno installieren** + ➜ [Deno VSCode Extension](https://marketplace.visualstudio.com/items?itemName=denoland.vscode-deno) + +2. **Deno für das Projekt aktivieren** + + Um Deno in deinem Projekt zu aktivieren und die Deno-APIs sowie Modul-Auflösung zu nutzen, öffne die VS Code-Befehls-Palette und wähle "Deno: Initialize Workspace Configuration". + ![Deno Command Palette](https://docs.deno.com/runtime/reference/images/command_palette.png) + + Dieser Befehl fügt **'deno.enable': true** zu eurer Workspace-Konfiguration (.vscode/settings.json im Projektordner) hinzu. Alternativ könnt ihr es auch manuell einstellen: + + - Öffne die **Einstellungen (`Strg + ,` / `Cmd + ,`)** + - Suche nach `"deno.enable"` und aktiviere die Option + - Alternativ in der `settings.json` hinzufügen: + ```json + { + "deno.enable": true + } + ``` + +3. **Linter und Formatierung aktivieren** (optional): + ```json + { + "deno.lint": true + } + ``` + +--- + +## 🛠️ Wichtige CLI-Befehle + +| Befehl | Beschreibung | +| ----------------------------------------- | ------------------------------------------------------ | +| `deno --version` | Zeigt die installierte Deno-Version an | +| `deno help` | Zeigt eine Liste aller Befehle | +| `deno init ` | Erstellt ein neues Deno Projekt | +| `deno run ` | Führt eine TypeScript-Datei aus | +| `deno cache ` | Lädt alle Abhängigkeiten in den Cache | +| `deno fmt` | Formatiert den Code nach Standardregeln | +| `deno lint` | Prüft den Code auf Fehler | +| `deno upgrade` | Aktualisiert Deno auf die neueste Version | +| `deno repl` | Startet eine interaktive Deno-Shell | +| `deno eval "console.log('Hello, Deno!')"` | Führt JavaScript/TypeScript-Code direkt aus | +| `deno info ` | Zeigt Informationen zur TypeScript/JavaScript-Datei an | +| | + +--- + +## 🏗️ Ein neues Deno-Projekt anlegen + +1. **Neues Verzeichnis erstellen**: + + ```sh + mkdir mein-deno-projekt && cd mein-deno-projekt + ``` + +2. **Erste Datei erstellen (`main.ts`)**: + + ```ts + console.log('Hello, Deno!'); + ``` + +3. **Datei ausführen**: + ```sh + deno run main.ts + ``` + +--- + +## 📦 Packages in Deno nutzen + +Deno verwendet keine `node_modules`. Stattdessen werden URLs direkt importiert, um Abhängigkeiten zu laden. Du kannst Module entweder direkt von URLs importieren oder einen Paketmanager wie `deno.land/x` verwenden. + +### 🛠️ Ein Paket hinzufügen: + +```ts +import { something } from 'https://deno.land/x/something/mod.ts'; +``` + +### 📤 Entfernen eines Pakets: + +Da es keine `node_modules` gibt, müssen ungenutzte **Imports manuell entfernt** werden. + +### 🔄 Update von Abhängigkeiten: + +Deno cached Imports automatisch. Falls ein neues Update einer URL verfügbar ist: + +```sh + deno cache --reload main.ts +``` + +--- + +## 🗝️ Berechtigung + +Deno verwendet ein Berechtigungsmodell für den Zugriff auf Ressourcen. Wenn du ein Skript ausführst, benötigt es möglicherweise bestimmte Berechtigungen, um Aktionen wie den Zugriff auf das Dateisystem oder das Netzwerk auszuführen. + +Verwende die --allow-\* Flags, um Berechtigungen zu erteilen. + +| Befehl | Beschreibung | +| --------------- | ---------------------------------------------------- | +| `--allow-read` | Lesezugriff auf Dateien und Verzeichnisse | +| `--allow-write` | Schreibzugriff auf Dateien und Verzeichnisse | +| `--allow-net` | Netzwerkzugriff | +| `--allow-env` | Zugriff auf Umgebungsvariablen | +| `--allow-run` | Ausführen anderer Programme | +| `--allow-all` | Gewährt alle Berechtigungen (mit Vorsicht verwenden) | +| `--unstable` | Aktiviert instabile APIs | + +
+ +```sh +deno run --allow-read myscript.ts +``` + +
+ +--- + + +## 🐞 Häufige Probleme & Lösungen + +### ❌ `Relative import path "@std/assert" not prefixed with / or ./ or ../` +**Problem:** Nach `deno init` wird die Datei `main_test.ts` generiert, die `@std/assert` importiert, aber nicht findet. + +**Lösung:** Das Modul explizit installieren: +```sh +deno add jsr:@std/assert +``` +Alternativ den vollständigen Pfad im Import nutzen: +```ts +import { assert } from "https://deno.land/std@0.221.0/assert/mod.ts"; +``` +Danach den Cache erneuern: +```sh +deno cache --reload main_test.ts +deno test main_test.ts +``` + +Falls weiterhin Probleme auftreten, überprüfe mit: +```sh +deno info +``` +ob das Modul korrekt geladen wurde. + +--- + +## 🎯 Fazit + +Deno ist eine einfache und sichere Alternative zu Node.js mit **nativem TypeScript-Support**. + +🔗 **Mehr Infos:** [Deno Offizielle Dokumentation](https://deno.land/manual) + +--- diff --git a/docs/01 - Deno Installation.pdf b/docs/01 - Deno Installation.pdf new file mode 100644 index 0000000..91b5d25 Binary files /dev/null and b/docs/01 - Deno Installation.pdf differ diff --git a/docs/02 - VSCode Extensions.md b/docs/02 - VSCode Extensions.md new file mode 100644 index 0000000..02d9730 --- /dev/null +++ b/docs/02 - VSCode Extensions.md @@ -0,0 +1,13 @@ +# Empfohlene VSCode-Erweiterungen für TypeScript und Deno + +| Name | Optional | Beschreibung | +| ------------------------------------------------------------------------------------------------------------------------ | -------- | ----------------------------------------------------------------------------------------------------------------------- | +| [Deno](https://marketplace.visualstudio.com/items?itemName=denoland.vscode-deno) | ❌ | Offizielle Deno-Erweiterung für VSCode. Fügt Unterstützung für Deno-Projekte hinzu, inklusive Linting und Formatierung. | +| [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) | ❌ | Linting-Unterstützung für TypeScript und JavaScript, kompatibel mit Deno. | +| [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) | ❌ | Code-Formatierung für TypeScript, JavaScript und andere Sprachen. | +| [Error Lens](https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens) | ❌ | Hebt Fehler und Warnungen direkt im Editor hervor, um Probleme schneller zu erkennen. | +| [Path Intellisense](https://marketplace.visualstudio.com/items?itemName=christian-kohler.path-intellisense) | ✅ | Autovervollständigung für Dateipfade in Import-Anweisungen. | +| [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens) | ❌ | Erweiterte Git-Funktionalitäten direkt in VSCode. | +| [REST Client](https://marketplace.visualstudio.com/items?itemName=humao.rest-client) | ✅ | Senden von HTTP-Anfragen direkt in VSCode, nützlich für API-Tests. | +| [Todo Tree](https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.todo-tree) | ✅ | Findet und organisiert TODO-Kommentare im Code. | +| [Prettify TypeScript: Better Type Previews](https://marketplace.visualstudio.com/items?itemName=MylesMurphy.prettify-ts) | ✅ | Es bietet eine bessere Hover-Vorschau für TypeScript | diff --git a/docs/02 - VSCode Extensions.pdf b/docs/02 - VSCode Extensions.pdf new file mode 100644 index 0000000..55787ff Binary files /dev/null and b/docs/02 - VSCode Extensions.pdf differ diff --git a/docs/03. Deno Links.md b/docs/03. Deno Links.md new file mode 100644 index 0000000..eca677b --- /dev/null +++ b/docs/03. Deno Links.md @@ -0,0 +1,3 @@ +| Name | Beschreibung | +| ----------------------------------------------------------------------------------------------------------------- | ------------ | +| [Testing with Deno](https://medium.com/deno-the-complete-reference/testing-with-deno-part-4-asserts-5b708c0e33e4) | | diff --git a/docs/03. Deno Links.pdf b/docs/03. Deno Links.pdf new file mode 100644 index 0000000..0234c20 Binary files /dev/null and b/docs/03. Deno Links.pdf differ