Files
regulatory-management-system/code/web/regulatory-management-util/eslint.config.ts
2026-02-04 19:53:50 +08:00

170 lines
6.8 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import js from "@eslint/js";
import globals from "globals";
import tseslint from "typescript-eslint";
import pluginVue from "eslint-plugin-vue";
import { defineConfig } from "eslint/config";
import stylistic from "@stylistic/eslint-plugin";
export default defineConfig([
{
name: "通用设置",
files: ["**/*.{js,mjs,cjs,ts,mts,cts,vue}",],
plugins: { js, },
extends: ["js/recommended",],
languageOptions: {
globals: {
...globals.browser,
...globals.node,
},
},
rules:{
// indent: ["warn", 4,],
// 圆括号中的空格,为空不加空格,紧跟花括号、方括号、圆括号时也不加入空格
"space-in-parens": ["error", "always", { exceptions: ["{}", "[]", "()", "empty",], },],
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-unused-vars": "warn",
semi: ["error", "always",], // 控制行尾部分号
quotes: ["error", "double",],
"comma-dangle": ["error", {
arrays: "always",
objects: "always",
imports: "never",
exports: "never",
functions: "never",
},], // 数组和对象键值对最后一个逗号
"comma-style": ["error", "last",], // 逗号在行尾
"no-undef-init": "error",
"no-invalid-this": "error",
"no-use-before-define": "error",
"no-shadow-restricted-names": "error", // 禁止对一些关键字或者保留字进行赋值操作比如NaN、Infinity、undefined、eval、arguments等
"comma-spacing": ["error", { before: false,
after: true, },],
"array-bracket-spacing": ["error", "never", {
singleValue: false,
objectsInArrays: false,
arraysInArrays: false,
},],
"brace-style": ["error", "allman", { allowSingleLine: true, },],
"prefer-const": "warn",
"space-before-function-paren": ["error", {
anonymous: "always",
named: "never",
asyncArrow: "always",
},],
"@stylistic/no-trailing-spaces": [ // 不允许末尾的空格
"error",
{
"skipBlankLines": false,
"ignoreComments": false,
},
],
},
},
tseslint.configs.recommended,
{
files: ["src/**/*.ts", "eslint.config.ts",],
plugins: {
"@stylistic": stylistic,
},
languageOptions: {
parserOptions: { parser: tseslint.parser, },
},
rules: {
"spaced-comment": "error",
"space-before-function-paren": "off",
"semi-spacing": ["error", { before: false,
after: true, },],
"@typescript-eslint/no-unused-vars": "warn",
"@stylistic/indent": ["error", 4, { SwitchCase: 1, },],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-extra-semi": "off",
"@typescript-eslint/no-inferrable-types": "off",
"@typescript-eslint/ban-ts-comment": "warn",
"@typescript-eslint/member-delimiter-style": "off",
"@stylistic/semi": ["error", "always",], // 控制行尾部分号
"@stylistic/brace-style": ["error", "allman", { allowSingleLine: true, },],
"@stylistic/comma-dangle": [
"error",
{
arrays: "always",
objects: "always",
imports: "never",
exports: "never",
functions: "never",
},
], // 数组和对象键值对最后一个逗号
"@stylistic/quotes": ["error", "double",],
"@typescript-eslint/space-before-function-paren": "off",
"@typescript-eslint/comma-spacing": [
"off",
{ before: false,
after: true, },
], // 使用eslint的不用ts的
// "@typescript-eslint/strict-boolean-expressions": ["error", {
// allowString: false,
// },],
"@stylistic/object-property-newline": "warn",
},
},
pluginVue.configs["flat/essential"],
pluginVue.configs["flat/strongly-recommended"],
{
files: ["**/*.vue", "**/.ts", "eslint.config.ts",],
plugins: {
"@stylistic": stylistic,
},
languageOptions: {
parserOptions: { parser: tseslint.parser, },
ecmaVersion: "latest",
sourceType: "module",
globals: globals.browser,
},
rules: {
"vue/html-indent": ["error", 4,],
// "vue/max-attributes-per-line": ["error", {
// "singleline": {
// "max": 1,
// },
// "multiline": {
// "max": 1,
// },
// },],
"spaced-comment": "error",
"space-before-function-paren": "off",
"semi-spacing": ["error", { before: false,
after: true, },],
"@typescript-eslint/no-unused-vars": "warn",
"@stylistic/indent": ["error", 4, { SwitchCase: 1, },],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-extra-semi": "off",
"@typescript-eslint/no-inferrable-types": "off",
"@typescript-eslint/ban-ts-comment": "warn",
"@typescript-eslint/member-delimiter-style": "off",
"@stylistic/semi": ["error", "always",], // 控制行尾部分号
"@stylistic/brace-style": ["error", "allman", { allowSingleLine: true, },],
"@stylistic/comma-dangle": [
"error",
{
arrays: "always",
objects: "always",
imports: "never",
exports: "never",
functions: "never",
},
], // 数组和对象键值对最后一个逗号
"@stylistic/quotes": ["error", "double",],
"@typescript-eslint/space-before-function-paren": "off",
"@typescript-eslint/comma-spacing": [
"off",
{ before: false,
after: true, },
], // 使用eslint的不用ts的
// "@typescript-eslint/strict-boolean-expressions": ["error", {
// allowString: false,
// },],
"@stylistic/object-property-newline": "warn",
},
},
]);