Konfiguracja we flat configu: zalecane zestawy js, typescript-eslint oraz eslint-plugin-vue. Bloki <script setup lang="ts"> obsługuje vue-eslint-parser przekazujący zawartość do parsera TypeScriptu. Odstępstwa od domyślnych reguł: - vue/multi-word-component-names wyłączone - kafelki panelu mają nazwy własne i nie każda jest dwuczłonowa - no-unused-vars przepuszcza nazwy z prefiksem podkreślenia - no-console wyłączone dla testu dymnego, który raportuje wynik na stdout Szablony przepuszczone przez eslint --fix, co ujednoliciło łamanie atrybutów i domykanie znaczników. Po zmianach kontrola typów, build i test dymny nadal przechodzą. Dochodzą skrypty npm: lint (z --max-warnings 0) oraz lint:fix. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
52 lines
1.3 KiB
JavaScript
52 lines
1.3 KiB
JavaScript
import js from '@eslint/js'
|
|
import globals from 'globals'
|
|
import ts from 'typescript-eslint'
|
|
import vue from 'eslint-plugin-vue'
|
|
|
|
// Kolejność ma znaczenie: w flat config późniejszy wpis nadpisuje wcześniejszy,
|
|
// więc wyjątki od reguł muszą stać za blokiem, który te reguły ustawia.
|
|
export default ts.config(
|
|
{ ignores: ['dist/**', 'node_modules/**'] },
|
|
|
|
js.configs.recommended,
|
|
ts.configs.recommended,
|
|
vue.configs['flat/recommended'],
|
|
|
|
{
|
|
// Pliki .vue parsuje vue-eslint-parser, a bloki <script setup lang="ts">
|
|
// przekazuje dalej do parsera TypeScriptu.
|
|
files: ['**/*.vue'],
|
|
languageOptions: {
|
|
parserOptions: { parser: ts.parser },
|
|
},
|
|
},
|
|
|
|
{
|
|
files: ['src/**/*.{ts,vue}'],
|
|
languageOptions: { globals: globals.browser },
|
|
},
|
|
|
|
{
|
|
files: ['*.mjs', '*.ts'],
|
|
languageOptions: { globals: globals.node },
|
|
},
|
|
|
|
{
|
|
rules: {
|
|
// Kafelki panelu mają nazwy własne, nie zawsze dwuczłonowe.
|
|
'vue/multi-word-component-names': 'off',
|
|
'no-console': ['warn', { allow: ['warn', 'error'] }],
|
|
'@typescript-eslint/no-unused-vars': [
|
|
'error',
|
|
{ argsIgnorePattern: '^_', varsIgnorePattern: '^_' },
|
|
],
|
|
},
|
|
},
|
|
|
|
{
|
|
// Test dymny raportuje wynik na stdout - to jego zadanie, nie zapomniany debug.
|
|
files: ['smoke-test.mjs'],
|
|
rules: { 'no-console': 'off' },
|
|
},
|
|
)
|