diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 6eeefe8b0..000000000 --- a/.eslintrc.js +++ /dev/null @@ -1,25 +0,0 @@ -module.exports = { - root: true, - env: { - node: true, - }, - extends: [`plugin:vue/essential`, `eslint:recommended`, `@vue/prettier`], - parserOptions: { - parser: `babel-eslint`, - }, - ignorePatterns: [`src/assets/scripts/renderers`], - rules: { - 'prettier/prettier': [ - `error`, - { - singleQuote: true, - semi: false, - }, - ], - semi: [`error`, `never`], - quotes: [`error`, `backtick`], - 'no-unused-vars': `off`, - 'no-console': `off`, - 'no-debugger': `off`, - }, -} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..a4e5b8f05 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,49 @@ +{ + // Disable the default formatter, use eslint instead + "prettier.enable": false, + "editor.formatOnSave": false, + + // Auto fix + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit", + "source.organizeImports": "never" + }, + + // Silent the stylistic rules in you IDE, but still auto fix them + "eslint.rules.customizations": [ + { "rule": "style/*", "severity": "off" }, + { "rule": "format/*", "severity": "off" }, + { "rule": "*-indent", "severity": "off" }, + { "rule": "*-spacing", "severity": "off" }, + { "rule": "*-spaces", "severity": "off" }, + { "rule": "*-order", "severity": "off" }, + { "rule": "*-dangle", "severity": "off" }, + { "rule": "*-newline", "severity": "off" }, + { "rule": "*quotes", "severity": "off" }, + { "rule": "*semi", "severity": "off" } + ], + + // Enable eslint for all supported languages + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "vue", + "html", + "markdown", + "json", + "jsonc", + "yaml", + "toml", + "xml", + "gql", + "graphql", + "astro", + "css", + "less", + "scss", + "pcss", + "postcss" + ] +} diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index e0440bd39..000000000 --- a/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [`@vue/cli-plugin-babel/preset`], -} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 000000000..eec2ad08b --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,15 @@ +import antfu from '@antfu/eslint-config' + +export default antfu({ + vue: true, + unocss: true, + typescript: true, + ignores: [`src/assets/scripts/renderers`], + rules: { + 'semi': [`error`, `never`], + 'quotes': [`error`, `backtick`], + 'no-unused-vars': `off`, + 'no-console': `off`, + 'no-debugger': `off`, + }, +}) diff --git a/package.json b/package.json index 460bdabbd..a21ac8267 100644 --- a/package.json +++ b/package.json @@ -39,19 +39,14 @@ "vue": "^3.4.29" }, "devDependencies": { + "@antfu/eslint-config": "2.22.0-beta.1", + "@unocss/eslint-plugin": "^0.61.2", "@vitejs/plugin-vue": "^5.0.5", - "@vue/cli-plugin-babel": "^4.5.19", - "@vue/cli-plugin-eslint": "^4.5.19", - "@vue/cli-service": "^4.5.15", - "@vue/eslint-config-prettier": "^6.0.0", "async-validator": "^4.0.7", - "babel-eslint": "^10.1.0", "babel-plugin-import": "^1.13.3", "cache-loader": "^4.1.0", "cross-env": "^7.0.3", - "eslint": "^6.8.0", - "eslint-plugin-prettier": "^3.4.1", - "eslint-plugin-vue": "^6.2.2", + "eslint": "^9.6.0", "less": "^4.1.2", "less-loader": "^7.3.0", "mini-types": "*",