reactjs - Eslint გამოავლინოს მაგრამ გამოტოვოს .tsx ფაილები


მინდა დავიწყო eslint-ის გამოყენება ჩემს .tsx ფაილებზე.
ჩემი კონფიგურაცია ასე გამოიყურება:

module.exports = {
    'env': {
        'browser': true,
        'es2021': true
    },
    'settings': {
        'react': {
            'version': 'detect'
        }
    },
    'extends': [
        'eslint:recommended',
        'plugin:react/recommended',
        'plugin:@typescript-eslint/recommended'
    ],
    'parser': '@typescript-eslint/parser',
    'parserOptions': {
        'ecmaFeatures': {
            'jsx': true
        },
        'ecmaVersion': 12,
        'sourceType': 'module'
    },
    'plugins': [
        'react',
        '@typescript-eslint'
    ],
    'rules': {
        'indent': [
            'error',
            'tab'
        ],
        'linebreak-style': [
            'error',
            'unix'
        ],
        'quotes': [
            'error',
            'single'
        ],
        'semi': [
            'error',
            'never'
        ]
    }
}

თუ მაქვს ფაილი გაფართოებით .ts და შევასრულებ ამ ბრძანებას:
yarn eslint ./src/components/Frame.ts
... მე შემიძლია მივიღო ლინტინგის შეცდომების სია.

თუ მე გავცვლი გაფართოებას .tsx-ზე და ჩავატარებ ეს ბრძანება მასზე:
yarn eslint ./src/components/Frame.tsx
... მე არ მაქვს სრულიად nenhuma შეტყობინება. არც შეცდომა, არც გაფრთხილება, არაფერი. თითქოს ფაილი ნორმალურია.

ჩემს VSCode-ში მაქვს ESLint გაფართოება. ის მუშაობს. ის პრობლემებს უსვამს ხაზს. როგორც ვიცი, ეს გაფართოება იყენებს ერთსა და იმავე .eslintrc ფაილს, ამიტომ კონფიგურაცია უნდა იყოს კარგი.

შეგიძლია მომცე რამე ახსნა, რატომ მუშაობს კონფიგურაცია გაფართოებით და რატომ არ მუშაობს ტერმინალში?

პასუხი #1

პრობლემა არის ის, თუ როგორ აწარმოებ es-lint. ამჟამად @typescript-eslint სტანდარტულად არ იკვლევს .tsx ფაილებს, საჭიროა მიუთითოთ ექსტენშენები, რომლებიც უნდა გაკონტროლდეს, მაგალითად

yarn eslint --ext=ts,tsx src

ეს ბრძანება მოძებნის ყველა ფაილს, რომელიც მთავრდება .ts ან .tsx src ფოლდერში და @typescript-eslint იმუშავებს როგორც მოსალოდნელი .ts ან .tsx ფაილებთან

yarn eslint src/**/*.ts src/**/*.tsx

ეს ბრძანება მოძებნის ყველა ფაილს, რომელიც მთავრდება .ts ან .tsx src ფოლდერში, მაგრამ @typescript-eslint იმუშავებს მხოლოდ .ts ფაილებზე და უპირფერებლად დატოვებს .tsx ფაილებს

yarn eslint ./src/components/Frame.tsx

ამ ბრძანებას, რომლის გაშვებას ცდილობდით, იგივე შედეგი ექნება, რაც მეორე ბრძანებას yarn eslint src/**/*.ts src/**/*.tsx, მაგრამ ის მოძებნის ./src/components/Frame.tsx