javascript - Tolkningsfeil: ble ikke funnet av prosjektjenesten, men jeg har ignorert disse filene
Min prosjektstruktur
dist (kompilert kode av ts)
bibliotek
- lib.d.ts
- lib
- lib.d.ts
- lib.js
src (kildekode)
bibliotek
- lib.ts
Min tsconfig.json
{
"compilerOptions": {
"target": "ES2022",
"module": "commonjs",
"outDir": "./dist",
"rootDir": "./",
"strict": true,
"esModuleInterop": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"baseUrl": "./src",
"declaration": true,
"allowJs": true
},
"include": [
"src/**/*.ts",
],
"exclude": [
"eslint.config.mjs",
"dist/**"
]
}
Min eslint.config.mjs:
// @ts-check
import eslint from '@eslint/js';
import tseslint from 'typescript-eslint';
import tsParser from '@typescript-eslint/parser'
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
const __dirname = dirname(fileURLToPath(import.meta.url));
export default tseslint.config(
{
files: [
"src/**/*.ts"
],
ignores: [
'dist/**/*.ts',
'dist/**',
"**/*.mjs",
"eslint.config.mjs",
"**/*.js"
],
rules: {
"@typescript-eslint/no-unnecessary-condition": "error",
"@typescript-eslint/no-unnecessary-type-assertion": "error",
},
},
...tseslint.configs.strictTypeChecked,
...tseslint.configs.recommendedTypeChecked,
{
languageOptions: {
parserOptions: {
project: "./tsconfig.json",
projectService: true,
tsconfigRootDir: __dirname,
projectFolderIgnoreList: [
"**dist**",
],
},
},
},
);
Jeg vil at tsc skal legge de kompilerte resultatene i dist-mappen (jeg er ny på TypeScript, så jeg vet ikke om dette er den riktige måten å gjøre et TS-prosjekt på).
Jeg har ignorert filer i dist-mappen, men jeg får fortsatt disse feilene:
/Users/kainzhong/VSCode/eslintTmp/dist/src/index.d.ts
0:0 error Parsing error: /Users/kainzhong/VSCode/eslintTmp/dist/src/index.d.ts was not found by the project service. Consider either including it in the tsconfig.json or including it in allowDefaultProject
/Users/kainzhong/VSCode/eslintTmp/dist/src/index.js
0:0 error Parsing error: /Users/kainzhong/VSCode/eslintTmp/dist/src/index.js was not found by the project service. Consider either including it in the tsconfig.json or including it in allowDefaultProject
/Users/kainzhong/VSCode/eslintTmp/dist/src/lib/lib.d.ts
0:0 error Parsing error: /Users/kainzhong/VSCode/eslintTmp/dist/src/lib/lib.d.ts was not found by the project service. Consider either including it in the tsconfig.json or including it in allowDefaultProject
/Users/kainzhong/VSCode/eslintTmp/dist/src/lib/lib.js
0:0 error Parsing error: /Users/kainzhong/VSCode/eslintTmp/dist/src/lib/lib.js was not found by the project service. Consider either including it in the tsconfig.json or including it in allowDefaultProject
/Users/kainzhong/VSCode/eslintTmp/eslint.config.mjs
0:0 error Parsing error: /Users/kainzhong/VSCode/eslintTmp/eslint.config.mjs was not found by the project service. Consider either including it in the tsconfig.json or including it in allowDefaultProject
Har jeg ikke allerede ignorert disse filene? Hvorfor klager eslint fortsatt på dem?
Svar #1
Denne konfigurasjonen ignorerer faktisk ikke de filene - det er problemet. ignores har to måter å oppføre seg på:
- Når du er i en konfigurasjonsblokk med
files, stopper det den spesifikke konfigurasjonsblokken fra å påvirke de ignorert filene - Når de er i sin egen konfigurasjonsblokk uten
files, forteller det ESLint å ignorere disse filene
Flytt ignores til sin egen blokk i starten:
export default tseslint.config(
{
ignores: [
'dist/**/*.ts',
'dist/**',
"**/*.mjs",
"eslint.config.mjs",
"**/*.js"
],
},
{
files: [
"src/**/*.ts"
],
// ...
Fra https://eslint.org/docs/latest/use/configure/configuration-files#excluding-files-with-ignores.
