25 Ekim 2024 Cuma

TypeScript Build Sürelerini Optimize Etmek: Performans İpuçları ve İncremental Derleme

  Ahmet Şimşek       25 Ekim 2024 Cuma

Gelişmiş özellikleri ve güçlü tip sistemi ile TypeScript, büyük projelerde geliştirici verimliliğini artırır. Ancak, proje büyüdükçe TypeScript’in build süresi de uzar. Neyse ki, TypeScript, build sürelerini optimize etmek için bir dizi yapılandırma seçeneği sunar. Bu yazıda, TypeScript projelerinizde build sürelerinin nasıl optimize edilebileceğinden bahsedeceğim.

1. Incremental Derlemeyi Etkinleştirin

Incremental derleme, TypeScript’in build süresini kısaltmak için sunulan en güçlü özelliklerden biridir. Incremental mod, önceki derleme sonuçlarını cache’leyerek yalnızca değişen dosyaları derler. Büyük projelerde incremental mod kullanmak, build süresini belirgin şekilde hızlandırabilir.

Nasıl Kullanılır?

tsconfig.json dosyanızda incremental seçeneğini true yapın ve .tsbuildinfo dosyasının yolunu belirleyin:

{
"compilerOptions": { "incremental": true, "tsBuildInfoFile": "./.tsbuildinfo" } }

.tsbuildinfo dosyası, TypeScript derleyicisinin cache bilgisini tutar ve incremental derlemenin temeli olarak kullanılır. Ancak bu dosyayı .gitignore dosyanıza eklemek genellikle iyi bir uygulamadır

*.tsbuildinfo

Bu ayar, TypeScript'in build bilgilerini saklamasını sağlar. Yeni bir build yaptığınızda yalnızca değişen dosyalar derlenecektir, böylece büyük projelerde bile build süresi önemli ölçüde azalır.

2. Isolated Modules: Modüler ve Hızlı Derleme

TypeScript projelerinde modüler yapı, kodun hızla derlenmesine yardımcı olur. isolatedModules seçeneği, TypeScript’in her dosyayı bağımsız olarak derlemesini sağlar ve dosyaların tip bilgilerine doğrudan bağımlı olmasını engeller. Bu özellikle büyük projelerde build süresini kısaltır.

{
"compilerOptions": { "isolatedModules": true } }

Not: Bu seçeneği kullanmak için ts-loader veya babel-loader gibi bir yükleyiciye ihtiyacınız olabilir.

3. skipLibCheck: Kütüphane Dosyalarını Kontrol Etmeden Derleme

Projelerde kullanılan üçüncü parti kütüphanelerin (örneğin node_modules içerisindeki tip tanımlamaları) her defasında kontrol edilmesi zaman alabilir. skipLibCheck seçeneğini true yaparak bu kontrolü atlayabilir ve derleme süresini kısaltabilirsiniz.

{
"compilerOptions": { "skipLibCheck": true } }

Bu ayar, yalnızca build süresini kısaltmakla kalmaz, aynı zamanda bazı kütüphanelerdeki tip tanımlama çakışmalarının neden olduğu hatalardan da kaçınmanızı sağlar.

4. Composite Projeler: Modüler Yapıda Incremental Build

Büyük projeler için composite yapı, incremental build’i daha etkili hale getirir. composite modda birden fazla bağımsız alt proje çalıştırarak her bir modülü bağımsız olarak derleyebilirsiniz.

tsconfig.json dosyanızda şu şekilde ayarlayabilirsiniz:

{
"compilerOptions": { "composite": true, "declaration": true }, "references": [{ "path": "../other-project" }] }

Bu, TypeScript’e bağımsız modüller arasında bir bağ kurarak build süresini hızlandırır.

5. Compiler Ayarları

Projelerinizin çıktısını mümkün olan en düşük seviye (ör. ESNext) olarak ayarlamak, build süresini kısaltabilir. Modern tarayıcılar veya Node.js sürümleri kullanıyorsanız, target ve module seviyelerini daha güncel bir seviyeye getirebilirsiniz:

{
"compilerOptions": { "target": "esnext", "module": "esnext" } }

Bu seçenekler, derleme aşamasında gereksiz dönüşümleri önleyerek build süresini hızlandırır.

6. SWC ve ESBuild ile Daha Hızlı Derlemeler

TypeScript’i transpile etmek için swc veya esbuild gibi alternatif araçları kullanabilirsiniz. Bu araçlar TypeScript kodunu hızlı bir şekilde derler ve büyük projelerde oldukça etkili olabilir.

Webpack ile esbuild-loader Kullanımı:

// webpack.config.js
module.exports = { module: { rules: [ { test: /\.ts$/, loader: "esbuild-loader", options: { loader: "ts", target: "esnext" }, }, ], }, };

SWC veya ESBuild gibi araçlar bazı TypeScript özelliklerini sınırlı şekilde destekleyebilir, ancak build süresinde büyük iyileştirmeler sağlarlar.

Sonuç

TypeScript projelerinde build sürelerini optimize etmek, özellikle büyük projelerde geliştirme sürecinizi hızlandırır ve daha verimli hale getirir. Incremental build, skipLibCheck, isolatedModules, composite projeler ve modern transpile araçları gibi teknikleri kullanarak projelerinizi daha hızlı build edebilirsiniz. Bu adımlar, yalnızca build süresini kısaltmakla kalmaz, aynı zamanda geliştirme sürecinizi de daha pürüzsüz hale getirir.

logoblog

Thanks for reading TypeScript Build Sürelerini Optimize Etmek: Performans İpuçları ve İncremental Derleme

Newest
You are reading the newest post

Hiç yorum yok:

Yorum Gönder