Cara Mengelola Proyek TypeScript dengan tsconfig

Mengelola proyek TypeScript secara efektif sangat penting untuk menjaga kualitas dan konsistensi kode. File tsconfig.json merupakan bagian utama dalam mengonfigurasi dan mengelola proyek TypeScript. File ini memungkinkan pengembang untuk menentukan berbagai opsi kompiler, penyertaan file, pengecualian, dan banyak lagi. Panduan ini akan menjelaskan cara menggunakan tsconfig.json untuk mengelola proyek TypeScript secara efisien.

Apa itu tsconfig.json?

File tsconfig.json adalah file konfigurasi yang digunakan oleh kompiler TypeScript (tsc) untuk menentukan bagaimana proyek TypeScript harus dikompilasi. File ini menyediakan cara standar untuk menentukan opsi kompiler dan file yang menjadi bagian dari proyek. Jika file tsconfig.json ada di suatu direktori, direktori tersebut akan ditandai sebagai akar proyek TypeScript.

Membuat File tsconfig.json

Untuk membuat file tsconfig.json, jalankan perintah berikut di terminal:

tsc --init

Perintah ini menghasilkan berkas tsconfig.json default dengan serangkaian opsi yang telah ditetapkan sebelumnya. Berkas yang dihasilkan dapat disesuaikan dengan kebutuhan spesifik proyek.

Memahami Properti Dasar tsconfig.json

File tsconfig.json berisi beberapa properti yang dapat disesuaikan untuk mengelola proyek TypeScript dengan lebih baik. Berikut ini adalah beberapa properti yang paling umum digunakan:

  • compilerOptions: Menentukan opsi kompiler untuk proyek.
  • include: Menentukan file atau direktori yang akan disertakan dalam proyek.
  • exclude: Menentukan file atau direktori yang akan dikecualikan dari proyek.
  • files: Menentukan file individual yang akan disertakan dalam proyek.

Mengonfigurasi Opsi Kompiler

Properti compilerOptions ​​merupakan bagian terpenting dalam berkas tsconfig.json. Properti ini memungkinkan pengembang untuk mengontrol berbagai aspek dari proses kompilasi. Berikut ini adalah beberapa opsi kompiler yang umum digunakan:

{
  "compilerOptions": {
    "target": "ES6",               // Specifies the target JavaScript version
    "module": "commonjs",          // Specifies the module system
    "strict": true,                // Enables all strict type-checking options
    "outDir": "./dist",            // Redirects output structure to the directory
    "rootDir": "./src",            // Specifies the root directory of input files
    "esModuleInterop": true,       // Enables emit interoperability between CommonJS and ES Modules
    "forceConsistentCasingInFileNames": true // Disallows inconsistently-cased references to the same file
  }
}

Opsi ini dapat disesuaikan berdasarkan persyaratan proyek. Misalnya, mengubah target menjadi ES5 akan menampilkan JavaScript yang kompatibel dengan browser lama.

Menyertakan dan Mengecualikan File

Dalam proyek TypeScript, penting untuk mengontrol file mana yang disertakan atau dikecualikan selama kompilasi. Properti include dan exclude di tsconfig.json digunakan untuk tujuan ini.

{
  "include": ["src/**/*"],    // Includes all TypeScript files in the src folder
  "exclude": ["node_modules", "**/*.spec.ts"] // Excludes node_modules and all spec files
}

Konfigurasi di atas mencakup semua file TypeScript dari direktori src dan subdirektori-subdirektorinya sambil mengecualikan file dalam direktori node_modules ​​dan file dengan ekstensi .spec.ts.

Menggunakan Properti file

Properti files ​​digunakan untuk menyertakan file-file individual dalam kompilasi. Ini berguna jika hanya sekumpulan file tertentu yang perlu dikompilasi.

{
  "files": ["src/index.ts", "src/app.ts"]
}

Dalam contoh ini, hanya file index.ts ​​dan app.ts ​​dari direktori src yang akan dikompilasi.

Memperluas File tsconfig

TypeScript memungkinkan perluasan file tsconfig.json lainnya menggunakan properti extends. Ini berguna untuk berbagi konfigurasi dasar yang sama di beberapa proyek atau subproyek.

{
  "extends": "./base.tsconfig.json",
  "compilerOptions": {
    "outDir": "./dist"
  }
}

Dalam contoh ini, file tsconfig.json saat ini memperluas file base.tsconfig.json dan menimpa opsi outDir.

Kesimpulan

Mengelola proyek TypeScript dengan tsconfig.json memberikan fleksibilitas dan kontrol yang hebat atas proses kompilasi. Dengan memahami dan memanfaatkan berbagai properti tsconfig.json, seperti compilerOptions, include, exclude, dan files, proyek TypeScript dapat dikelola dengan lebih efisien dan efektif. Kemampuan untuk memperluas file tsconfig juga memungkinkan pengorganisasian dan penggunaan ulang proyek yang lebih baik.