Browse Source

修复eslint配置

Cyrus Zhou 11 months ago
parent
commit
40b47b78a6
4 changed files with 16 additions and 122 deletions
  1. 0 18
      Web/.eslintignore
  2. 0 76
      Web/.eslintrc.js
  3. 11 25
      Web/eslint.config.mjs
  4. 5 3
      Web/package.json

+ 0 - 18
Web/.eslintignore

@@ -1,18 +0,0 @@
-
-*.sh
-node_modules
-lib
-*.md
-*.scss
-*.woff
-*.ttf
-.vscode
-.idea
-dist
-mock
-public
-bin
-build
-config
-index.html
-src/assets

+ 0 - 76
Web/.eslintrc.js

@@ -1,76 +0,0 @@
-module.exports = {
-	root: true,
-	env: {
-		browser: true,
-		es2021: true,
-		node: true,
-	},
-	parser: 'vue-eslint-parser',
-	parserOptions: {
-		ecmaVersion: 12,
-		parser: '@typescript-eslint/parser',
-		sourceType: 'module',
-	},
-	extends: ['plugin:vue/vue3-essential', 'plugin:vue/essential', 'eslint:recommended'],
-	plugins: ['vue', '@typescript-eslint'],
-	overrides: [
-		{
-			files: ['*.ts', '*.tsx', '*.vue'],
-			rules: {
-				'no-undef': 'off',
-			},
-		},
-	],
-	rules: {
-		// http://eslint.cn/docs/rules/
-		// https://eslint.vuejs.org/rules/
-		// https://typescript-eslint.io/rules/no-unused-vars/
-		'@typescript-eslint/ban-ts-ignore': 'off',
-		'@typescript-eslint/explicit-function-return-type': 'off',
-		'@typescript-eslint/no-explicit-any': 'off',
-		'@typescript-eslint/no-var-requires': 'off',
-		'@typescript-eslint/no-empty-function': 'off',
-		'@typescript-eslint/no-use-before-define': 'off',
-		'@typescript-eslint/ban-ts-comment': 'off',
-		'@typescript-eslint/ban-types': 'off',
-		'@typescript-eslint/no-non-null-assertion': 'off',
-		'@typescript-eslint/explicit-module-boundary-types': 'off',
-		'@typescript-eslint/no-redeclare': 'error',
-		'@typescript-eslint/no-non-null-asserted-optional-chain': 'off',
-		'@typescript-eslint/no-unused-vars': [2],
-		'vue/custom-event-name-casing': 'off',
-		'vue/attributes-order': 'off',
-		'vue/one-component-per-file': 'off',
-		'vue/html-closing-bracket-newline': 'off',
-		'vue/max-attributes-per-line': 'off',
-		'vue/multiline-html-element-content-newline': 'off',
-		'vue/singleline-html-element-content-newline': 'off',
-		'vue/attribute-hyphenation': 'off',
-		'vue/html-self-closing': 'off',
-		'vue/no-multiple-template-root': 'off',
-		'vue/require-default-prop': 'off',
-		'vue/no-v-model-argument': 'off',
-		'vue/no-arrow-functions-in-watch': 'off',
-		'vue/no-template-key': 'off',
-		'vue/no-v-html': 'off',
-		'vue/comment-directive': 'off',
-		'vue/no-parsing-error': 'off',
-		'vue/no-deprecated-v-on-native-modifier': 'off',
-		'vue/multi-word-component-names': 'off',
-		'no-useless-escape': 'off',
-		'no-sparse-arrays': 'off',
-		'no-prototype-builtins': 'off',
-		'no-constant-condition': 'off',
-		'no-use-before-define': 'off',
-		'no-restricted-globals': 'off',
-		'no-restricted-syntax': 'off',
-		'generator-star-spacing': 'off',
-		'no-unreachable': 'off',
-		'no-multiple-template-root': 'off',
-		'no-unused-vars': 'error',
-		'no-v-model-argument': 'off',
-		'no-case-declarations': 'off',
-		'no-console': 'off',
-		'no-redeclare': 'off',
-	},
-};

+ 11 - 25
Web/eslint.config.mjs

@@ -1,19 +1,8 @@
+import js from '@eslint/js';
 import vue from 'eslint-plugin-vue';
-import typescriptEslint from '@typescript-eslint/eslint-plugin';
+import tseslint from '@typescript-eslint/eslint-plugin';
+import vueParser from 'vue-eslint-parser';
 import globals from 'globals';
-import parser from 'vue-eslint-parser';
-import path from 'node:path';
-import { fileURLToPath } from 'node:url';
-import js from '@eslint/js';
-import { FlatCompat } from '@eslint/eslintrc';
-
-const __filename = fileURLToPath(import.meta.url);
-const __dirname = path.dirname(__filename);
-const compat = new FlatCompat({
-	baseDirectory: __dirname,
-	recommendedConfig: js.configs.recommended,
-	allConfig: js.configs.all,
-});
 
 export default [
 	{
@@ -37,28 +26,25 @@ export default [
 			'src/assets',
 		],
 	},
-	...compat.extends('plugin:vue/vue3-essential', 'plugin:vue/essential', 'eslint:recommended'),
+	js.configs.recommended,
 	{
 		plugins: {
 			vue,
-			'@typescript-eslint': typescriptEslint,
+			'@typescript-eslint': tseslint,
 		},
 
 		languageOptions: {
+			parser: vueParser,
+			parserOptions: {
+				parser: '@typescript-eslint/parser',
+				ecmaVersion: 2022,
+				sourceType: 'module',
+			},
 			globals: {
 				...globals.browser,
 				...globals.node,
 			},
-
-			parser: parser,
-			ecmaVersion: 12,
-			sourceType: 'module',
-
-			parserOptions: {
-				parser: '@typescript-eslint/parser',
-			},
 		},
-
 		rules: {
 			'@typescript-eslint/ban-ts-ignore': 'off',
 			'@typescript-eslint/explicit-function-return-type': 'off',

+ 5 - 3
Web/package.json

@@ -73,20 +73,22 @@
 		"xlsx-js-style": "^1.2.0"
 	},
 	"devDependencies": {
+		"@eslint/eslintrc": "^3.3.1",
+		"@eslint/js": "^9.26.0",
 		"@plugin-web-update-notification/vite": "^2.0.0",
 		"@types/lodash-es": "^4.17.12",
 		"@types/node": "^22.15.3",
 		"@types/nprogress": "^0.2.3",
 		"@types/sortablejs": "^1.15.8",
-		"@typescript-eslint/eslint-plugin": "^8.31.1",
-		"@typescript-eslint/parser": "^8.31.1",
+		"@typescript-eslint/eslint-plugin": "^8.32.0",
+		"@typescript-eslint/parser": "^8.32.0",
 		"@vitejs/plugin-vue": "^5.2.3",
 		"@vitejs/plugin-vue-jsx": "^4.1.2",
 		"@vue/compiler-sfc": "^3.5.13",
 		"code-inspector-plugin": "^0.20.10",
 		"eslint": "^9.26.0",
 		"eslint-plugin-vue": "^10.1.0",
-		"globals": "^16.0.0",
+		"globals": "^16.1.0",
 		"less": "^4.3.0",
 		"prettier": "^3.5.3",
 		"rollup-plugin-visualizer": "^5.14.0",