翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AL2023 での TypeScript
注記
このドキュメントでは、TypeScript とその Node.js ベースの実行環境に関する重要な情報を提供します。また、一般的な開発ワークフローを紹介し、一貫性と再現性のある開発環境を提供するために TypeScript が AL2023 にどのようにパッケージ化されているかを説明します。
TypeScriptnodejs20-typescript や nodejs22-typescript など) では、まさにこの方法により、TS コンパイラをシステムレベルでグローバルに、かつサポートされている Node.js バージョンごとに個別にインストールします。
tsc はどの Node.js バージョンにも直接依存しません。コンパイラは、target
Node.js ベースのランタイム設計には特定の弱点があります。ホストでサポーされるランタイムのバージョンは 1 つだけで、プロジェクトレベルですべての依存関係の再現性と一貫性が求められることです。これにより、TypeScript を使用する一般的なアプローチとして、TS コンパイラ、Node.js 現行バージョンの TS 基本設定、およびすべてのソフトウェアの依存関係をプロジェクト内にローカルにインストールしています。グローバルにインストールされるノードモジュールは npm などの CLI ツールのみであることが予想されますが、同じく CLI ツールである tsc がグローバルにインストールされることはほとんどありません。幸い、tsc のグローバル (システム全体) インストールとローカル (プロジェクト内) インストールは問題なく共存でき、異なるバージョンとして個別に使用することもできます。ローカルにインストールした tsc は、npx ツールを使用して実行する必要があることに注意してください。このツールは npm と一緒にインストールされます。したがって、システム TS コンパイラを使用する場合でも、ユーザーはランタイムのコンポーネントのバージョンを選択できます。例えば、Node.js (アクティブバージョンを代替手段で切り替える)、TS コンパイラ (ローカルまたはグローバルにインストールし、アクティブバージョンを代替手段で切り替える) を選択し、特定のニーズに合わせて設定できます。
Amazon Linux は、npm などのグローバルにインストールされた他のノードモジュールと同じ方法で、TS コンパイラを Node.js バージョンごとにパッケージ化します。パッケージとバイナリは名前空間化され、名前の一部として Node.js のメジャーバージョンが含まれます。コンパイラのデフォルトの実行可能ファイル名 tsc は、alternatives ツールによってランタイムに管理され、ファイルがインストールされて実行される Node.js の現在アクティブなバージョンを指します。この選択は、現在の Node.js ランタイムバージョンには依存しません。ノードの実行可能ファイルで Node.js 20 を指し、tsc を Node.js 22 で解釈するように設定することもできます。TS コンパイラの名前空間名を使用することもできます。例えば、tsc-{MAJOR_VERSION} を、デフォルトの tsc 名が設定されている名前空間と独立して使用できます。
TS コンパイラのアクティブバージョンを管理するために役立つコマンド
-
どのような alternatives が設定されているかを確認します。
alternatives --list -
tsc の現在の設定を確認します。
alternatives --display tsc -
tsc バージョンをインタラクティブに変更します。
alternatives --config tsc -
手動モードに切り替えて特定のバージョンを選択します。
alternatives --set tsc /usr/bin/tsc-{MAJOR_VERSION} -
自動バージョンの選択モードに戻ります。
alternatives --auto tsc
同じシステムに複数のバージョンの Node と TS コンパイラをインストールして使用する例:
# 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