Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
TypeScripten AL2 023
nota
Este documento proporciona la información esencial sobre el entorno de ejecución basado en Node.js TypeScript y su entorno de ejecución. También cubre un flujo de trabajo de desarrollo típico y explica cómo TypeScript se empaqueta en AL2 023 para ofrecer un entorno de desarrollo coherente y reproducible.
TypeScriptnodejs20-typescript o nodejs22-typescript instalan un compilador TS: globalmente a nivel del sistema y por separado para cada Node.js versión compatible.
El tsc no depende directamente de ninguna Node.js versión. El compilador espera un cierto nivel de funciones de ejecución, que se definen en un archivo especial (tsconfig.json) mediante opciones como target y lib.
El diseño del tiempo de ejecución Node.js basado tiene una cierta debilidad: solo admite una versión del tiempo de ejecución en un host y requiere la reproducibilidad y la coherencia de todas las dependencias a nivel de proyecto. Esto llevó al siguiente enfoque común de uso TypeScript: el compilador de TS, la configuración base de TS para la Node.js versión actual y todas las dependencias del software se instalan localmente, dentro de un proyecto. Aunque se espera que los módulos de nodo instalados globalmente sean solo herramientas CLI, como npm, tsc, que también es una herramienta CLI, rara vez se instala globalmente. Afortunadamente, las instalaciones globales (en todo el sistema) y locales (dentro de un proyecto) de tsc pueden coexistir sin problemas y también pueden ser versiones diferentes que se utilizan de forma independiente. Tenga en cuenta que un tsc instalado localmente debe ejecutarse con la herramienta npx, que se instala junto con npm. Por lo tanto, incluso con un compilador TS de sistema, los usuarios tienen la oportunidad de elegir versiones de los componentes del motor de ejecución, por ejemplo Node.js (cambiando la versión activa por alternativas), un compilador TS (instalándolo de forma local o global y también cambiando la versión activa por alternativas) y configurándolo según las necesidades específicas.
Amazon Linux empaqueta un compilador de TS de la misma forma que otros módulos de nodos instalados globalmente, como npm, en una versión básica por Node.js versión. Los paquetes y los binarios tienen espacios de nombres y contienen la versión principal de Node.js como parte de sus nombres. El nombre ejecutable predeterminado del compilador, tsc, lo administra en tiempo de ejecución la herramienta de alternativas y apunta a la versión actualmente activa Node.js para la que se instaló y con la que se ejecutará. Esta selección no depende de la versión de ejecución actual. Node.js Es posible tener un ejecutable de nodo que apunte a Node.js 20 y que tsc esté configurado para ser interpretado por el Node.js 22. También es posible utilizar los nombres con espacios de nombres de un compilador de TS, por ejemplo, tsc- {MAJOR_VERSION} independientemente de para qué esté configurado el nombre tsc predeterminado.
Algunos comandos útiles para administrar la versión activa de un compilador de TS
-
Compruebe para qué alternativas está configurada
alternatives --list -
Compruebe la configuración actual de tsc
alternatives --display tsc -
Cambie la versión de forma interactiva tsc
alternatives --config tsc -
Cambie al modo manual y seleccione una versión específica
alternatives --set tsc /usr/bin/tsc-{MAJOR_VERSION} -
Volver al modo de selección de versión automática
alternatives --auto tsc
Un ejemplo de instalación y uso de varias versiones de Node y un compilador de TS en el mismo sistema:
# 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