Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
TypeScriptim Jahr AL2 023
Anmerkung
Dieses Dokument enthält die wichtigsten Informationen zur TypeScript Node.js-basierten Ausführungsumgebung und deren Umgebung. Es behandelt auch einen typischen Entwicklungsablauf und erklärt, wie er in AL2 023 verpackt TypeScript ist, um eine konsistente und reproduzierbare Entwicklungsumgebung bereitzustellen.
TypeScriptnodejs22-typescript, z. B. nodejs20-typescript oder, einen TS-Compiler: global auf Systemebene und separat für jede unterstützte Node.js Version.
Der TSC hängt nicht direkt von einer Version ab. Node.js Der Compiler erwartet ein gewisses Maß an Laufzeitfunktionen, die in einer speziellen Datei (tsconfig.json) über Optionen wie target und lib definiert sind.
Das darauf Node.js basierende Runtime-Design hat eine gewisse Schwäche: Es unterstützt nur eine Version der Runtime auf einem Host und erfordert Reproduzierbarkeit und Konsistenz aller Abhängigkeiten auf Projektebene. Dies führte zu dem folgenden allgemeinen Nutzungsansatz TypeScript: Der TS-Compiler, die TS-Basiskonfiguration für die aktuelle Node.js Version und alle Softwareabhängigkeiten werden lokal innerhalb eines Projekts installiert. Es wird zwar erwartet, dass global installierte Knotenmodule nur CLI-Tools wie npm sind, aber tsc, das auch ein CLI-Tool ist, wird selten global installiert. Zum Glück können globale (systemweite) und lokale (innerhalb eines Projekts) Installationen von tsc problemlos nebeneinander existieren und es kann sich auch um verschiedene Versionen handeln, die unabhängig voneinander verwendet werden. Beachten Sie, dass ein lokal installiertes tsc mit dem Tool npx ausgeführt werden sollte, das zusammen mit npm installiert wird. Somit haben Benutzer selbst mit einem TS-Compiler für das System die Möglichkeit, Versionen der Komponenten der Laufzeit auszuwählen, z. B. Node.js (indem sie die aktive Version über Alternativen wechseln), einen TS-Compiler (indem sie ihn entweder lokal oder global installieren und auch die aktive Version über Alternativen wechseln), und ihn für die spezifischen Bedürfnisse zu konfigurieren.
Amazon Linux paketiert einen TS-Compiler auf die gleiche Weise wie andere global installierte Knotenmodule, wie z. B. npm, auf Basis einer Node.js Basisversion. Pakete und Binärdateien haben einen Namespace und enthalten die Hauptversion von Node.js als Teil ihrer Namen. Der standardmäßige Name der ausführbaren Datei des Compilers, tsc, wird zur Laufzeit vom Alternativ-Tool verwaltet und gibt die aktuell aktive Version an, Node.js für die er installiert wurde und von der er ausgeführt wird. Diese Auswahl hängt nicht von der aktuellen Runtime-Version ab. Node.js Es ist möglich, dass die ausführbare Node-Datei auf Node.js 20 zeigt und tsc so konfiguriert ist, dass sie von 22 interpretiert wird. Node.js Es ist auch möglich, die Namespace-Namen eines TS-Compilers, z. B. tsc- {MAJOR_VERSION}, unabhängig davon zu verwenden, wofür der Standardname tsc konfiguriert ist.
Einige nützliche Befehle zur Verwaltung der aktiven Version eines TS-Compilers
-
Prüfen Sie, für welche Alternativen konfiguriert ist
alternatives --list -
Überprüfen Sie die aktuelle Konfiguration von tsc
alternatives --display tsc -
Ändern Sie interaktiv die Version tsc
alternatives --config tsc -
Wechseln Sie in den manuellen Modus und wählen Sie eine bestimmte Version
alternatives --set tsc /usr/bin/tsc-{MAJOR_VERSION} -
Wechseln Sie zurück zum auto Versionsauswahlmodus
alternatives --auto tsc
Ein Beispiel für die Installation und Verwendung mehrerer Versionen von Node und eines TS-Compilers auf demselben System:
# Check the AL2023 release $ cat /etc/amazon-linux-release Amazon Linux release 2023.9.20250929 (Amazon Linux) # Install a TypeScript compiler for Node.js 20 and 22 # Node.js 20 and 22 will be installed automatically $ sudo dnf install -qy nodejs20-typescript nodejs22-typescript # Check what was installed $ rpm -q nodejs20 nodejs20-typescript nodejs22 nodejs22-typescript nodejs20-20.19.5-1.amzn2023.0.1.x86_64 nodejs20-typescript-5.9.2-1.amzn2023.0.1.noarch nodejs22-22.19.0-1.amzn2023.0.1.x86_64 nodejs22-typescript-5.9.2-1.amzn2023.0.1.noarch # Check the active version of Node.js - it is version 20 $ alternatives --display node node - status is auto. link currently points to /usr/bin/node-20 /usr/bin/node-20 - priority 100 slave npmrc: /usr/lib/nodejs20/lib/node_modules/npm/npmrc slave npm: /usr/bin/npm-20 slave npx: /usr/bin/npx-20 slave node_modules: /usr/lib/nodejs20/lib/node_modules /usr/bin/node-22 - priority 100 slave npmrc: /usr/lib/nodejs22/lib/node_modules/npm/npmrc slave npm: /usr/bin/npm-22 slave npx: /usr/bin/npx-22 slave node_modules: /usr/lib/nodejs22/lib/node_modules Current 'best' version is /usr/bin/node-20. # Check the active JS runtime version for TypeScript # Currently, the tsc compiler will be executed by Node.js 22 $ alternatives --display tsc tsc - status is auto. link currently points to /usr/bin/tsc-22 /usr/bin/tsc-22 - priority 100 slave tsserver: /usr/bin/tsserver-22 /usr/bin/tsc-20 - priority 100 slave tsserver: /usr/bin/tsserver-20 Current 'best' version is /usr/bin/tsc-22. # Check versions printed by executables $ node -v v20.19.5 $ tsc -v Version 5.9.2 # while the node is 20, tsc is executed by node 22 anyway $ head -1 /usr/bin/tsc #!/usr/bin/node-22 # However, instead of default executable names, e.g. node or tsc, # we can use namespaced names to target any installed version $ node-20 -v v20.19.5 $ node-22 -v v22.19.0 $ tsc-20 -v Version 5.9.2 $ tsc-22 -v Version 5.9.2 $ head -1 /usr/bin/tsc-20 #!/usr/bin/node-20 $ head -1 /usr/bin/tsc-22 #!/usr/bin/node-22