tsconfig.json’ı tanımak, anlamak, kavramak

Cem Topkaya
2 min readMay 15, 2020

--

Siz ister tanıyarak haberdar olun, ister kavrayarak matrix’in sırrına vâkıf olun. Ben anladığımı anlatacağım ki belki size de faydası olur.

Typescript kodunu bir dosyaya yazdınız ve derleyip javascript kodu üretmek istediniz ama bir baktınız ki derleyici uygulamanız yok!

Tıpkı ;

  • java kodunu derlemek için javac.exe
  • hede.cs CSharp kodunu derlemek için csc.exe

programlarının sisteminizde yüklü olması gibi. O halde typescript derleyicisini bilgisayarınızın her dizininden erişilebilir kılmak için globale yükleycek -g anahtarıyla aşağıdaki komutu çalıştıralım (ref).

$ npm install -g typescript

Artık xxx.ts dosyanızı derlemek için:

$ tsc greeter.ts

Neden tsconfig.json?

Projeyi derlemek için gereken kök dosyaları ve derleyici seçeneklerini belirtir.

tsconfig.json 2 türlü bulunur:

  1. tsc Komutuna tsconfig.json parametresini olarak vermezsek, derleyiciyi bulunduğumuz dizinden başlayarak üst dizinlere doğru çıkarakilk bulduğu tsconfig.json dosyasındaki ayarlara göre derleme işini tamamlar.
  2. tsc komutuna --project/-p argümanıyla birlikte tsconfig.json dosyasını içeren bir dizinin yolunu veya yapılandırmaları içeren geçerli bir .json dosyasının yolunu belirtecek şekilde çalıştırabiliriz.
 -p       FILE OR DIRECTORY, 
--project FILE OR DIRECTORY
Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.

tsconfig.json Oluşturmak

NPM için package.json yarattığımız gibi neredeyse her komut satırı aracında--init argümanı sayesinde ilk dosyaların oluşturulmasını sağlayabiliriz. Bulunduğunuz dizinde tsconfig.json dosyasını oluşturmak için:

$ tsc --init
message TS6071: Successfully created a tsconfig.json file.

Kocaman bir dosyayı bizim anlayabileceğimiz şekilde açıklamalı olarak oluşturdu:

tsconfig.json Özellikleri

files

Derlenecek dosyaları tek tek vermek istediğinizde files dizisine yazabilirsiniz. Pattern vererek files içinde

{
"compilerOptions": {
...
},
"files": [
"buDosyayiDerle.ts",
"bunuDaDerle.ts",
"bunuDaaaa.ts",
"**/src/*.ts" // Pattern burada çalışmaz!!!
]
}

include ve exclude *

Derlenecek dosyaları tek tek vermek yerine düzenli ifade deseni vererek bir kere include özelliğinin dizi tipindeki değerine yazabilirsiniz.

Aynı şekilde derlenmesini istemediklerinizi exclude özelliğine değer olarak verebilirsiniz.

{
"compilerOptions": {
...
},
"include": [
"src/**/*" //src ve alt dizinlerindeki tüm dosyaları derler
],
"exclude": [
"node_modules", // node_modules dizinini
"**/*.spec.ts" // ve test dosyalarını (spec.ts) es geçer
]
}

Referanslar

--

--

Cem Topkaya
Cem Topkaya

Written by Cem Topkaya

Evlat, kardeş, ağabey, eş, baba, müzik sever, öğrenmek ister, paylaşmaya can atar, iyi biri olmaya çalışır, hakkı geçenlerden helallik ister vs.

No responses yet