tsconfig.json’ı tanımak, anlamak, kavramak
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:
- 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. - 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
]
}