Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
TypeScriptdi AL2 023
catatan
Dokumen ini memberikan informasi penting tentang TypeScript dan lingkungan eksekusi berbasis Node.js. Ini juga mencakup alur kerja pengembangan yang khas dan menjelaskan bagaimana TypeScript dikemas dalam AL2 023 untuk memberikan lingkungan pengembangan yang konsisten dan dapat direproduksi.
TypeScriptnodejs20-typescript ataunodejs22-typescript, menginstal kompiler TS: secara global di tingkat sistem, dan secara terpisah untuk setiap Node.js versi yang didukung.
Tsc tidak secara langsung bergantung pada Node.js versi apa pun. Kompiler mengharapkan tingkat tertentu dari fitur runtime, yang didefinisikan dalam file khusus (tsconfig.json) melalui opsi seperti target dan lib.
Desain runtime Node.js berbasis memiliki kelemahan tertentu: hanya mendukung satu versi runtime pada host, dan membutuhkan reproduktifitas dan konsistensi semua dependensi di tingkat proyek. Hal ini menyebabkan pendekatan umum berikut untuk menggunakan TypeScript: kompiler TS, konfigurasi dasar TS untuk Node.js versi saat ini, dan semua dependensi perangkat lunak diinstal secara lokal, di dalam proyek. Meskipun modul node yang diinstal secara global diharapkan menjadi alat CLI saja, seperti npm, tsc, yang juga merupakan alat CLI, jarang diinstal secara global. Untungnya, instalasi global (luas sistem) dan lokal (dalam proyek) tsc dapat hidup berdampingan tanpa masalah dan juga dapat berupa versi berbeda yang digunakan secara independen. Perhatikan bahwa tsc yang diinstal secara lokal harus dijalankan menggunakan alat npx, yang diinstal bersama dengan npm. Jadi, bahkan dengan kompiler TS sistem, pengguna memiliki kesempatan untuk memilih versi komponen runtime, seperti Node.js (dengan mengganti versi aktif melalui alternatif), kompiler TS (dengan menginstalnya secara lokal, atau, secara global dan juga beralih versi aktif melalui alternatif), dan mengonfigurasinya untuk kebutuhan spesifik.
Amazon Linux mengemas kompiler TS dengan cara yang sama seperti modul node yang diinstal secara global lainnya, seperti npm, pada dasar per Node.js versi. Paket dan binari diberi namespace dan berisi versi utama Node.js sebagai bagian dari nama mereka. Nama default yang dapat dieksekusi dari kompiler, tsc, dikelola saat runtime oleh alat alternatif dan arahkan versi aktif saat ini yang telah Node.js di-insatalled dan akan dieksekusi oleh. Pilihan ini tidak bergantung pada versi Node.js runtime saat ini. Dimungkinkan untuk memiliki node yang dapat dieksekusi menunjuk ke Node.js 20 dan tsc dikonfigurasi untuk ditafsirkan oleh 22. Node.js Dimungkinkan juga untuk menggunakan nama namespace dari kompiler TS, misalnya tsc- {MAJOR_VERSION} secara independen untuk apa nama tsc default dikonfigurasi.
Beberapa perintah yang berguna untuk mengelola versi aktif kompiler TS
-
Periksa alternatif apa yang dikonfigurasi
alternatives --list -
Periksa konfigurasi tsc saat ini
alternatives --display tsc -
Ubah versi secara interaktif tsc
alternatives --config tsc -
Beralih ke mode manual dan pilih versi tertentu
alternatives --set tsc /usr/bin/tsc-{MAJOR_VERSION} -
Beralih kembali ke mode pemilihan versi auto
alternatives --auto tsc
Contoh menginstal dan menggunakan beberapa versi Node dan kompiler TS pada sistem yang sama:
# 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