Her TypeScript Ekibinin İhtiyaç Duyduğu 20 Statik Analiz Aracı

TypeScript Statik Analiz Araçları: Geliştirme Ekipleri İçin Eksiksiz Kılavuz

TypeScript'in tip sistemi, kod çalışmadan önce önemli bir hata sınıfını yakalar: tip uyuşmazlıkları, eksik özellikler, yanlış fonksiyon imzaları. Ancak yakalayamadığı her şey şunlardır: verilerin uygulama üzerinden nasıl aktığına bağlı güvenlik açıkları, ekip sınırları bulanıklaştıkça zamanla biriken mimari ihlaller, çağırıcıları kaldırıldıktan çok sonra bile kod tabanında kalan ölü dışa aktarımlar ve doğru derlenen ancak belirli çalışma zamanı koşullarında başarısız olan eşzamansız programlama hataları. Statik analiz araçları bu boşlukları doldurur ve doğru kombinasyonu seçmek, aslında neyi bulmaya çalıştığınıza bağlıdır.

Bu kılavuz, 2026 yılında TypeScript ekipleri için önemli olan araçları kapsar: kod denetimi katmanı (typescript-eslint ile ESLint, Biome, OxcLint), güvenlik katmanı (Semgrep, Snyk Code, SonarQube), mimari katman (Dependency-Cruiser, Deptrac, Nx), ölü kod katmanı (Knip) ve derin analiz katmanı (ts-morph, TypeScript Derleyicisinin kendisi). Her biri için, ne işe yaradığı, nasıl yapılandırılacağı ve ne zaman doğru araç olmadığı üzerinde durulmaktadır.

Kimsenin Anlamadığı Kod Tabanları İçin Tasarlandı

SMART TS XL Kod tabanınızın tamamında meydana gelen kırıcı değişiklikleri otomatik olarak ortaya çıkarır.

Daha fazla bilgi edin

TypeScript Statik Analiz Araçları: Karşılaştırma Tablosu

Tek tek araçlara geçmeden önce, aşağıdaki tabloda her aracın temel işlevi, CI uygunluğu ve ideal kullanım senaryosu gösterilmektedir. Hiçbir tek araç tüm boyutları kapsamaz; etkili TypeScript kalite analizi, birkaç aracın bir arada kullanılmasını gerektirir.

araçBirincil fonksiyonCI UygunÜcretEn
ESLint + typescript-eslintKod denetimi, stil, tür duyarlı kurallarEvetÜcretsizEkip genelindeki kurallar, asenkron tip güvenliği
biyomKod denetimi + biçimlendirmeEvetÜcretsizESLint + Prettier alternatifi, hız
Öküz tüyüLint temizleme (ESLint uyumlu)EvetÜcretsizHızlı lint sürelerine ihtiyaç duyan monorepo'lar
TypeScript Derleyicisi (tsc)Tip kontrolüEvetÜcretsizTip hataları, katı mod uygulaması
SegrepSAST, özel desenlerEvetÜcretsiz + ücretliGüvenlik taraması, özel kuruluş kuralları
Snyk KoduSAST, bağımlılık güvenliğiEvetÜcretsiz + ücretliÖncelik güvenliğe verilen önem, IDE entegrasyonu
SonarQube / SonarCloudKalite kontrol noktaları, trend takibiEvetÜcretsiz + ücretliKurumsal kalite gösterge panelleri
SonarLintIDE düzeyinde kalite geri bildirimiYalnızca IDEÜcretsizSatır içi güvenlik ve kalite ipuçları
Bağımlılık-Yolcu GemisiBağımlılık grafiği uygulamasıEvetÜcretsizMimari kural doğrulama
DeptracKatman sınırı uygulamasıEvetÜcretsizTemiz mimari, DDD sınırları
NxMonorepo bağımlılık yönetimiEvetÜcretsiz + ücretliMonorepo modül sınırları
bıçakÖlü kod ve kullanılmayan dışa aktarımlarEvetÜcretsizBüyük ölçekte kullanılmayan kod miktarını azaltmak
ts-morfProgramatik TS AST analiziSeçiciÜcretsizÖzel analiz, kod dönüştürme, araçlar

Katman 1: Tüy Alma ve Stil

typescript-eslint ile ESLint

ESLint, TypeScript kod denetiminin temelini oluşturmaya devam ediyor. typescript-eslint Bu paket, TypeScript'in tür bilgilerine erişim sağlar ve tür bağlamı gerektiren kuralları uygulayabilir; bunların en değerlileri, yaygın Promise hatalarını yakalayan asenkron işlemlere özgü kurallardır.

darbe

npm install --save-dev typescript-eslint

javascript

// eslint.config.js
import tseslint from "typescript-eslint";

export default tseslint.config(
  ...tseslint.configs.strictTypeChecked,
  {
    languageOptions: {
      parserOptions: {
        project: true,
        tsconfigRootDir: import.meta.dirname,
      },
    },
    rules: {
      // Async safety rules -- highest value TypeScript-specific rules
      "@typescript-eslint/no-floating-promises": "error",
      "@typescript-eslint/await-thenable": "error",
      "@typescript-eslint/no-misused-promises": "error",
      "@typescript-eslint/require-await": "warn",
      // Type safety
      "@typescript-eslint/no-explicit-any": "warn",
      "@typescript-eslint/no-unsafe-assignment": "error",
      "@typescript-eslint/no-unsafe-return": "error",
    },
  }
);

Yukarıdaki dört eşzamansız kural, typescript-eslint'in düz ESLint'e göre sağladığı en yüksek katma değerdir. Bunlar şunları yakalar: işlenmemiş Promise'ler (kayan Promise'ler), await Promise olmayan değerlere, senkron fonksiyonlar bekleyen geri çağrılara iletilen Promise'lara ve asla kullanmayan asenkron fonksiyonlara uygulanır. awaitBunlar, derlendiğinde sorunsuz çalışan ancak belirli koşullar altında çalışma zamanı hatalarına yol açan kalıplardır.

ESLint'in yapamadığı şeyler : dosyalar arası veri akışı analizi, mimari sınır uygulama, güvenlik açığı takibi veya ölü dosya dışa aktarma tespiti. Bunlar için aşağıdaki diğer katmanlar gereklidir.

Biome: Modern ESLint + Daha Güzel Alternatifi

Biome, ESLint ve Prettier'ı, 25-35 kat daha hızlı çalışan tek bir Rust tabanlı ikili dosya ile değiştiriyor. JavaScript, TypeScript, JSX ve JSON'u destekliyor. ESLint'in eklenti karmaşıklığından ve büyük kod tabanlarındaki yavaş performansından rahatsız olan yeni projeler veya ekipler için Biome, en güçlü modern alternatiftir.

darbe

npm install --save-dev --save-exact @biomejs/biome
npx @biomejs/biome init

darbe

# Check and format in one pass
npx @biomejs/biome check --write src/

# CI mode -- no modifications, exit non-zero on any finding
npx @biomejs/biome ci src/

Biome'un eklenti ekosistemi ESLint'inkinden daha küçüktür; bu da kapsamlı özel kurallara veya çerçeveye özgü eklentilere sahip ekipler için önemlidir. Yalnızca temel ESLint kurallarını ve Prettier biçimlendirmesini kullanan ekipler için Biome, çok daha kısa bir yürütme süresiyle eşdeğer kapsam sağlar.

OxcLint: Hız Odaklı ESLint Uyumluluğu

OxcLint (Oxc projesinin bir parçası), ESLint uyumlu kuralları 50-100 kat daha hızlı çalıştırır. Tam ESLint ekosisteminin yerini almaz, ancak lint süresinin darboğaz olduğu CI işlem hatları için en hızlı seçenek olarak hizmet eder.

darbe

npm install --save-dev oxlint
npx oxlint src/

OxcLint, standart ESLint'in dakikalar sürdüğü ve geri bildirim döngüsü gecikmesinin çekme isteği kalitesini düşürdüğü büyük monorepolar için doğru seçimdir. ESLint'in yerini almak yerine onunla birlikte en iyi şekilde çalışır; hızlı geri bildirim yolu için OxcLint'i, birleştirme öncesi aşamada tam kural kapsamı için ise ESLint'i kullanın.

Katman 2: Tür Kontrolü, TypeScript Derleyicisi

TypeScript derleyicisi (tscBu sadece bir derleme aracı değil, aynı zamanda tip düzeyinde doğruluk için birincil statik analiz motorudur. Katı modu etkinleştirmek, gerçek dünyadaki hataların çoğunu yakalayan ayarları etkinleştirir:

json

{
  "compilerOptions": {
    "strict": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
    "exactOptionalPropertyTypes": true,
    "useUnknownInCatchVariables": true
  }
}

darbe

# Type-check only, no emit -- ideal for CI
npx tsc --noEmit

noUnusedLocals hem de noUnusedParameters Derleyici düzeyinde kullanılmayan değişkenleri ve fonksiyon parametrelerini yakalayın. useUnknownInCatchVariables (TypeScript 4.4+) türleri istisnaları şu şekilde yakaladı: unknown ziyade anyBu durum, kullanımdan önce açık bir şekilde tür daraltmayı zorunlu kılıyor.

TypeScript kontrol akışı analizi Bu, derleyicinin koşullu dallanmalar içindeki türleri daraltmak için sağladığı yerleşik bir yetenektir. Ayrı bir araç değildir, aksine bir olanak sağlar. strict Bu mod, uygulamanın tam bir titizlikle gerçekleştirilmesini sağlar. Derleyicinin kontrol akışı analizi, tür koruyucularını anlar. typeof çekler, instanceofve ayrımcı sendika modellerini hedef aldı.

tsc sınırlaması : TypeScript derleyicisi güvenlik açıklarını, mimari sınır ihlallerini veya kullanılmayan dışa aktarımları bulmaz. Tür hatalarını bulur ve bunu kesin olarak yapar.

Katman 3: Güvenlik, TypeScript için SAST

Semgrep: Desen Tabanlı Güvenlik Taraması

Semgrep, kod kalıbı eşleştirmesi yoluyla güvenlik açıklarını bulur. TypeScript için SQL enjeksiyonunu, XSS'i, sabit kodlanmış kimlik bilgilerini ve güvenli olmayan kodları tespit edebilir. eval Kullanım hataları, prototip kirliliği ve güvensiz Express.js yapılandırmaları; doğru derlenen ancak istismar edilebilir güvenlik açıkları oluşturan kalıplardır.

tatlım

# Custom rule: flag user input in SQL queries (TypeScript)
rules:
  - id: ts-sql-injection-risk
    patterns:
      - pattern: |
          const query = `SELECT ... ${$USER_INPUT} ...`;
    message: "User input directly interpolated into SQL -- use parameterized queries"
    languages: [typescript]
    severity: ERROR

darbe

# Run with the community TypeScript security rules
semgrep scan --config=p/typescript --config=p/owasp-top-ten src/

Semgrep, ESLint ile rekabet halinde değil, onu tamamlayıcı niteliktedir. ESLint kuralları uygular; Semgrep ise güvenlik açıklarını bulur. Güvenliğe önem veren çoğu TypeScript ekibinin her ikisini de kullanması gerekir.

Snyk Code: IDE Entegrasyonlu Makine Öğrenimi Tabanlı SAST

Snyk Code, dosya genelinde kirlilik akışlarını izleyen makine öğrenimi tabanlı bir analiz motoruyla SAST (Yazılım Tanımlama Testi) gerçekleştirir. VS Code ve JetBrains IDE'lerine entegre olarak, geliştiriciler kod yazarken bulguları doğrudan gösterir ve CI çalıştırmasını beklemeye gerek kalmaz.

darbe

npm install --save-dev snyk
npx snyk auth
npx snyk code test

Snyk Code'un geliştirici deneyimine odaklanması, IDE içi geri bildirimi, her bulgunun yanında yer alan düzeltme önerileri ve iyileştirme örnekleri, güvenlik eğitiminin güvenlik tespiti kadar önemli olduğu durumlarda onu daha iyi bir seçenek haline getiriyor.

SonarQube ve SonarLint: Kalite Kontrol Kapıları ve Trend Takibi

SonarQube, gösterge paneli, trend takibi ve çekme isteği işaretlemesi ile sürekli kod kalitesi analizi sağlar. TypeScript için hataları, kod kokularını, güvenlik açıklarını ve tekrarları tespit eder. SonarLint, SonarQube kurallarını yerel olarak ortaya çıkaran IDE uzantısıdır.

TypeScript kullanan ekipler için SonarCloud (bulut tabanlı sürüm) daha basit bir yoldur: herkese açık depolar için ücretsizdir ve GitHub Actions veya GitLab CI aracılığıyla dakikalar içinde CI entegrasyonu sağlanır.

tatlım

# .github/workflows/sonar.yml
- name: SonarCloud Scan
  uses: SonarSource/sonarcloud-github-action@master
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

SonarQube'un ham kod denetimine göre en büyük avantajı, trend modelidir: kod kalitesi zaman içinde nasıl gelişiyor, hangi bileşenler bozuluyor ve her çekme isteği için yeni kod kalitesi puanı nedir? Bu yönetim odaklı metrikler, SonarQube'un ESLint ve Semgrep'ten farklı olarak sunduğu özelliklerdir.

Katman 4: Mimari Analiz

Bağımlılık Gezgini: Modül Sınır Kurallarını Uygula

Dependency-Cruiser, içe aktarma grafiğinizin tanımlanmış mimari kurallara uygun olup olmadığını doğrular. Görsel bağımlılık grafikleri oluşturur ve kod modül sınır kısıtlamalarını ihlal ettiğinde CI'yı başarısız kılar.

javascript

// .dependency-cruiser.cjs
module.exports = {
  forbidden: [
    {
      name: "no-circular",
      severity: "error",
      comment: "Circular dependencies make code hard to test and maintain",
      from: {},
      to: { circular: true },
    },
    {
      name: "no-ui-in-domain",
      severity: "error",
      comment: "Domain modules must not import from UI layer",
      from: { path: "^src/domain" },
      to: { path: "^src/ui" },
    },
    {
      name: "no-external-in-shared",
      severity: "warn",
      comment: "Shared utilities should minimize external dependencies",
      from: { path: "^src/shared" },
      to: { pathNot: "^(src|node_modules/(lodash|date-fns))" },
    },
  ],
};

darbe

npx depcruise --validate .dependency-cruiser.cjs src/

Dependency-Cruiser, Arama Konsolu verilerindeki "react dependency analysis cli tool" sorgularına doğrudan yanıt veren, TypeScript/React projelerinde bağımlılık grafikleri oluşturmak ve doğrulamak için standart bir araçtır.

Deptrac: Katman Bazlı Sınır Uygulaması

Deptrac, mimari katmanları zorunlu kılarak, kalıcılık kodunun sunumdan içe aktarma yapamamasını, etki alanı nesnelerinin altyapıya bağımlı olmamasını ve modül sınırlarının tüm kod tabanında korunmasını sağlar.

tatlım

# deptrac.yaml
parameters:
  layers:
    - name: Domain
      collectors:
        - type: directory
          value: src/domain
    - name: Application
      collectors:
        - type: directory
          value: src/application
    - name: Infrastructure
      collectors:
        - type: directory
          value: src/infrastructure
  ruleset:
    Domain:
      - ~Infrastructure  # Domain must not depend on Infrastructure
    Application:
      - Domain
    Infrastructure:
      - Application
      - Domain

Deptrac, katman izolasyonunun sadece bir tercih değil, bir tasarım kısıtlaması olduğu Temiz Mimari, DDD veya Altıgen Mimari kalıplarını izleyen projelerde en değerlidir.

Nx: Monorepo Düzeyinde Bağımlılık Yönetimi

TypeScript monorepoları için Nx, depodaki tüm projeler genelinde modül sınır uygulaması, etkilenen derleme tespiti ve bağımlılık grafiği görselleştirmesi sağlar.

json

// .eslintrc.json -- Nx module boundary rules
{
  "rules": {
    "@nx/enforce-module-boundaries": [
      "error",
      {
        "allow": [],
        "depConstraints": [
          { "sourceTag": "scope:shared", "onlyDependOnLibsWithTags": ["scope:shared"] },
          { "sourceTag": "scope:feature", "onlyDependOnLibsWithTags": ["scope:shared", "scope:feature"] },
          { "sourceTag": "scope:app", "onlyDependOnLibsWithTags": ["scope:shared", "scope:feature"] }
        ]
      }
    ]
  }
}

Nx'in affected Komutlar yalnızca değiştirilen modüllerle ilgili testleri ve kod denetimini çalıştırarak büyük monorepolarda CI süresini önemli ölçüde azaltır.

Katman 5: Ölü Kod Tespiti

Knip: Kullanılmayan Dışa Aktarımları, Dosyaları ve Bağımlılıkları Bulma

Knip, kullanılmayan dışa aktarımları, kullanılmayan dosyaları ve kullanılmayan işlemleri belirlemek için tüm modül grafiğini analiz eder. package.json ESLint'in bağımlılıklar sınıfı, kod birikiminin bir türüdür. no-unused-vars Dosya içindeki verilere baktığı için yakalanamaz.

darbe

npm install --save-dev knip
npx knip

json

// knip.json
{
  "entry": ["src/index.ts", "src/**/*.test.ts"],
  "project": ["src/**/*.ts"],
  "ignore": ["src/generated/**"],
  "ignoreDependencies": ["vitest"]
}

Knip, SC verilerinde doğrudan "dead code detection unused exports javascript typescript" şeklinde aranabilir. TypeScript projelerinde modül düzeyinde ölü kod tespiti için mevcut en yetenekli araçtır.

Katman 6: Programatik Analiz, ts-morph

ts-morph, TypeScript AST'sine karşı özel analiz, kod dönüştürme ve araçlar yazmayı kolaylaştıran bir TypeScript derleyici API sarmalayıcısıdır. SC verilerinde doğrudan "ts-morph" ve "ts morph" olarak aranır.

daktilo ile yazılmış yazı

import { Project } from "ts-morph";

const project = new Project({ tsConfigFilePath: "tsconfig.json" });

// Find all async functions that never await anything
const suspiciousAsyncFns: string[] = [];

for (const sourceFile of project.getSourceFiles()) {
  for (const fn of sourceFile.getFunctions()) {
    if (fn.isAsync()) {
      const hasAwait = fn.getDescendantsOfKind(
        SyntaxKind.AwaitExpression
      ).length > 0;
      if (!hasAwait) {
        suspiciousAsyncFns.push(
          `${sourceFile.getFilePath()}:${fn.getName() ?? "anonymous"}`
        );
      }
    }
  }
}

console.log("Async functions with no await:", suspiciousAsyncFns);

ts-morph kullanıma hazır bir analiz aracı değil, bir analiz aracı oluşturmak için kullanılan bir kütüphanedir. Mevcut araçların desteklediğinin ötesinde özel analizlere ihtiyaç duyan ekipler için uygundur: geçiş komut dosyaları, özel mimari doğrulayıcılar, otomatik yeniden düzenleme veya kod oluşturma işlem hatları.

TypeScript Async/Await Statik Analizi

Arama Konsolu verileri, "typescript static analysis async await paper tool" ve "typescript static analysis async await vulnerability paper tool" etrafında belirli bir sorgu kümesi göstermektedir. Bunlar, async programlama hatalarını tür düzeyinde anlayan araçlar arayan uygulayıcıları yansıtmaktadır.

Üretim ortamındaki TypeScript ekipleri için pratik çözüm, typescript-eslint'in asenkron işlemlere özgü dört kuralıdır (no-floating-promises, await-thenable, no-misused-promises, require-await) ile kombine strictNullChecks hem de useUnknownInCatchVariablesBu ikisi birlikte, akademik araştırma araçlarına ihtiyaç duymadan en sık karşılaşılan eşzamansız işlem türü hatalarını yakalar.

Asenkron güvenlik açığı kalıpları üzerine güvenlik araştırması yapan ekipler için TAJS ve Jelly, JavaScript'in asenkron yürütme semantiğini modelleyen akademik statik analiz araçlarıdır, ancak bunlar araştırma araçlarıdır, üretim geliştirme araçları değildir.

Angular ve React: Çerçeveye Özgü Statik Analiz

Angular ekipleri için, @angular-eslint Angular'a özgü, bileşen kalıplarını, şablon analizini ve servis enjeksiyonunu kapsayan kod denetleme kuralları sağlar. Yukarıdaki ESLint + typescript-eslint yapılandırmasıyla entegre olur.

React ekipleri için, eslint-plugin-react, eslint-plugin-react-hooks, ve eslint-plugin-jsx-a11y Eklentiler, React'e özgü kalıpları kapsar. Dependency-Cruiser, React'e özgü bağımlılık grafiği analizini ele alır ve SC verilerindeki "react dependency analysis cli tool" sorgularının arkasındaki araçtır.

IDE Entegrasyonu: VS Code ve JetBrains için Araçlar

"VS Code entegrasyonu için en iyi kod kalitesi araçları" ve "IDE entegrasyonu için en iyi kod kalitesi araçları" sorguları gerçek bir ihtiyacı yansıtıyor: Sürekli entegrasyon (CI) geri bildirimi, davranışı değiştirmek için çok geç kalıyor. IDE entegre analizi, en sıkı geri bildirim döngüsünü sağlıyor.

VS Code : Rust-analyzer Clippy eşliği ile ESLint uzantısı, satır içi SonarQube kuralları için SonarLint uzantısı, güvenlik bulguları için Snyk uzantısı ve tür düzeyinde geri bildirim için yerleşik TypeScript dil hizmeti.

JetBrains (WebStorm/IntelliJ) : WebStorm, tür hatalarını doğrudan ortaya çıkaran yerleşik TypeScript desteğinin yanı sıra ESLint, Prettier ve SonarLint ile entegrasyon sunar. Yerleşik inceleme sistemi, ESLint kurallarıyla aynı kalıpların çoğunu kapsar.

TypeScript statik analiz kapsamını en üst düzeye çıkarmak için VS Code yapılandırması :

json

// .vscode/settings.json
{
  "typescript.tsdk": "node_modules/typescript/lib",
  "typescript.enablePromptUseWorkspaceTsdk": true,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit"
  },
  "eslint.validate": ["javascript", "typescript", "typescriptreact"],
  "sonarlint.connectedMode.project": {
    "connectionId": "my-sonarcloud",
    "projectKey": "my-org_my-project"
  }
}

Ne kadar SMART TS XL TypeScript Analizini Kurumsal Çapta Genişletiyor

Yukarıdaki araçlar, bir TypeScript projesi içindeki TypeScript'i kapsar. TypeScript hizmetlerinin COBOL toplu iş programları, Java API'leri, Python veri işlem hatları veya eski ana bilgisayar sistemleriyle etkileşimde bulunduğu kuruluşlarda, tek dilli araçlar dil sınırlarını aşan bağımlılıkları göremez.

SMART TS XL'S statik kod analizi Bu kitap, kurumsal ortamdaki diğer tüm dillerin yanı sıra TypeScript'i de kapsar: COBOL, JCL, Java, Python, RPG, SQL ve bunların tümü arasında birleşik bir bağımlılık modeli oluşturur. Bir TypeScript servisi, bir COBOL programı tarafından desteklenen bir API'yi çağırdığında, SMART TS XL Bu ilişkiyi takip edebilir ve dahil edebiliriz. etki analizi Herhangi bir bileşende değişiklik yapılmadan önce.

Kurumsal arama özelliği, çok dilli kod tabanının tamamını sorgulanabilir hale getirir: Belirli bir modülün her TypeScript içe aktarımını, bir TypeScript servisinin çağırdığı her Java yöntemini, TypeScript tarafından kullanılan bir API'ye veri sağlayan her COBOL copybook'unu, saniyeler içinde, milyonlarca satır kod arasında ve herhangi bir dil kombinasyonunda bulabilirsiniz.

TypeScript'i daha geniş bir portföyün parçası olarak kullanan kurumsal ekipler için, SMART TS XL mimari görünürlük ve diller arası uyumluluk sağlar bağımlılık eşlemesi Bu, TypeScript'e özgü araçların sistemin kendi bölümlerine bakmalarını sağlar. SMART TS XL Her şeyi görüyor.

Doğru Yığın Oluşturmak

TypeScript için tüm kalite boyutlarını kapsayan tek bir araç yoktur. Doğru yaklaşım katmanlıdır ve her katman farklı bir problem sınıfını hedef alır:

Minimum uygulanabilir teknoloji yığını (yeni proje, küçük ekip):

  • TypeScript katı modu
  • typescript-eslint async kurallarıyla ESLint
  • npm audit bağımlılık zafiyetleri için

Üretim uygulamaları yığını (orta ölçekli ekip, güvenlik bilinci yüksek):

  • Yukarıdaki her şey artı:
  • Biçimlendirme için Biome veya Prettier kullanın.
  • SAST güvenliği için Semgrep
  • Ölü kod için kesme
  • SonarCloud, kaliteli trend görünürlüğü için.

Kurumsal / monorepo yığını (büyük ekip, mimari kısıtlamalar):

  • Yukarıdaki her şey artı:
  • Modül sınır uygulaması için Bağımlılık Gezgini
  • Monorepo etkilenen derleme optimizasyonu için Nx
  • Katman sınırı doğrulaması için Deptrac
  • SonarQube (kendi sunucunuzda barındırılan) yerel kalite kontrolleri için

Çok dilli kurumsal yazılım yığını (TypeScript ve eski sistemler birlikte):

  • Yukarıdaki her şey artı:
  • SMART TS XL diller arası etki analizi ve bağımlılık haritalaması için