44 lines
1 KiB
JavaScript
44 lines
1 KiB
JavaScript
import js from "@eslint/js";
|
|
import globals from "globals";
|
|
import ts from "typescript-eslint";
|
|
import vue from "eslint-plugin-vue";
|
|
import { defineConfig, globalIgnores } from "eslint/config";
|
|
import vueParser from "vue-eslint-parser";
|
|
|
|
export default defineConfig([
|
|
globalIgnores(["dist"]),
|
|
{
|
|
extends: [
|
|
js.configs.recommended,
|
|
ts.configs.strictTypeChecked,
|
|
...vue.configs["flat/essential"],
|
|
],
|
|
files: ["./src/**/*.{js,ts,vue}"],
|
|
languageOptions: {
|
|
ecmaVersion: "latest",
|
|
sourceType: "module",
|
|
globals: globals.browser,
|
|
parser: vueParser,
|
|
parserOptions: {
|
|
projectService: true,
|
|
tsconfigRootDir: import.meta.dirname,
|
|
parser: ts.parser,
|
|
extraFileExtensions: [".vue"],
|
|
},
|
|
},
|
|
rules: {
|
|
"vue/no-restricted-component-names": [
|
|
"error",
|
|
{
|
|
name: "RouterLink",
|
|
message: "Use SmartLink instead of RouterLink.",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
// disable multi-word-component-names for unplugin-vue-router
|
|
{
|
|
files: ["src/pages/**/*.vue"],
|
|
rules: { "vue/multi-word-component-names": "off" },
|
|
},
|
|
]);
|