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.
