TypeScript ayrıştırıcı/eklentisi ile ESLint: tsconfig.json’dan hariç tutulmuş .spec.ts dosyalarını nasıl dahil edebilirim?


Harika typescript-eslint'i ESLint ile birlikte kullanıyorum.

Sorun açıklaması: TypeScript ESLint ayrıştırıcısı src/module.spec.ts dosyasının projeye dahil olmadığını bildiriyor ve bu doğru. Tüm spec.ts dosyalarını TypeScript tsconfig.json dosyasından hariç tutuyorum çünkü bunların derlenmesine gerek yok.

src/module.spec.ts dosyasını derlenmeden ama hâlâ ESLint'e karşı kontrol edilecek şekilde nasıl yapabilirim?

my-project\src\module.spec.ts 0:0 hata Ayrıştırma hatası: @typescript-eslint/parser için "parserOptions.project" ayarlanmış. Dosya proje yapılandırmanızla eşleşmiyor: src\module.spec.ts. Dosya, sağlanan projelerden en az birine dahil edilmelidir

Benim .eslint.json dosyam (kısaltılmış):

{
  "extends": [
    "eslint:recommended",
    "plugin:@typescript-eslint/recommended"
  ],
  "env": {
    "node": true
  },
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaVersion": 6,
    "sourceType": "module",
    "project": "tsconfig.json"
  },
  "plugins": [
    "@typescript-eslint"
  ]
}

Benim tsconfig.json dosyam:

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "declaration": true,
    "sourceMap": false,
    "outDir": "./dist",
    "rootDir": "./src",
    "removeComments": true,
    "strict": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true
  },
  "exclude": [
    "./dist",
    "**/*.spec.ts"
  ]
}

Cevap #1

tsconfig.json'i içeren proje klasöründe, aşağıdaki içeriğe sahip başka bir JSON dosyası oluşturun:

{
  "exclude": [
    "./dist"
  ],
  "extends": "./tsconfig.json"
}

Tam dosya adı burada önemsizdir. Bunun, tüm ayarların ./tsconfig.json'den devralındığı tamamen geçerli bir TypeScript yapılandırma dosyası olduğunu unutmayın, extends hariç, burada "**/*.spec.ts" deseni kaldırılmıştır.

Varsayılan tsconfig.json yerine bu yeni JSON dosyasından ayarlarını okuyan bir araç, src/module.spec.ts dosyasını yok saymayacaktır.

Sonra .eslint.json dosyanızda parserOptions altında yeni JSON dosyasının adını project olarak ayarlayın, örneğin dosya test.tsconfig.json olarak adlandırılmışsa:

"project": "test.tsconfig.json"

Sonra ESLint'i çalıştır ve başka neye takıldığını gör.

Bu temelde, benzer bir sorunla karşılaştığım bir projemde yaptığım şeyin ta kendisi. Muhtemelen aynı etkiyi elde etmenin birkaç başka yolu daha vardır.

İlgili makaleler