瀏覽代碼

feat: 添加 ESLint 配置并集成到 VSCode

pnpm dlx @antfu/eslint-config@latest
feige996 10 月之前
父節點
當前提交
79c333e647
共有 4 個文件被更改,包括 2194 次插入47 次删除
  1. 58 9
      .vscode/settings.json
  2. 6 0
      eslint.config.mjs
  3. 4 1
      package.json
  4. 2126 37
      pnpm-lock.yaml

+ 58 - 9
.vscode/settings.json

@@ -1,14 +1,14 @@
 {
   // 默认格式化工具选择prettier
   "editor.defaultFormatter": "esbenp.prettier-vscode",
-  // 保存的时候自动格式化
-  "editor.formatOnSave": true,
-  //开启自动修复
-  "editor.codeActionsOnSave": {
-    "source.fixAll": "explicit",
-    "source.fixAll.eslint": "explicit",
-    "source.fixAll.stylelint": "explicit"
-  },
+  // // 保存的时候自动格式化
+  // "editor.formatOnSave": true,
+  // //开启自动修复
+  // "editor.codeActionsOnSave": {
+  //   "source.fixAll": "explicit",
+  //   "source.fixAll.eslint": "explicit",
+  //   "source.fixAll.stylelint": "explicit"
+  // },
   // 配置stylelint检查的文件类型范围
   "stylelint.validate": ["css", "scss", "vue", "html"], // 与package.json的scripts对应
   "stylelint.enable": true,
@@ -61,5 +61,54 @@
     "pages.config.ts": "manifest.config.ts,openapi-ts-request.config.ts",
     "package.json": "pnpm-lock.yaml,pnpm-workspace.yaml,LICENSE,.gitattributes,.gitignore,.gitpod.yml,CNAME,.npmrc,.browserslistrc",
     ".oxlintrc.json": "tsconfig.json,.commitlintrc.*,.prettier*,.editorconfig,.commitlint.cjs,.eslint*"
-  }
+  },
+  // 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", "fixable": true },
+    { "rule": "format/*", "severity": "off", "fixable": true },
+    { "rule": "*-indent", "severity": "off", "fixable": true },
+    { "rule": "*-spacing", "severity": "off", "fixable": true },
+    { "rule": "*-spaces", "severity": "off", "fixable": true },
+    { "rule": "*-order", "severity": "off", "fixable": true },
+    { "rule": "*-dangle", "severity": "off", "fixable": true },
+    { "rule": "*-newline", "severity": "off", "fixable": true },
+    { "rule": "*quotes", "severity": "off", "fixable": true },
+    { "rule": "*semi", "severity": "off", "fixable": true }
+  ],
+
+  // Enable eslint for all supported languages
+  "eslint.validate": [
+    "javascript",
+    "javascriptreact",
+    "typescript",
+    "typescriptreact",
+    "vue",
+    "html",
+    "markdown",
+    "json",
+    "json5",
+    "jsonc",
+    "yaml",
+    "toml",
+    "xml",
+    "gql",
+    "graphql",
+    "astro",
+    "svelte",
+    "css",
+    "less",
+    "scss",
+    "pcss",
+    "postcss"
+  ]
 }

+ 6 - 0
eslint.config.mjs

@@ -0,0 +1,6 @@
+import antfu from '@antfu/eslint-config'
+
+export default antfu({
+  unocss: true,
+  vue: true,
+})

+ 4 - 1
package.json

@@ -158,6 +158,9 @@
     "unplugin-auto-import": "^0.17.8",
     "vite": "5.2.8",
     "vite-plugin-restart": "^0.4.2",
-    "vue-tsc": "^2.2.10"
+    "vue-tsc": "^2.2.10",
+    "@antfu/eslint-config": "^4.15.0",
+    "eslint": "^9.29.0",
+    "@unocss/eslint-plugin": "^66.2.3"
   }
 }

文件差異過大導致無法顯示
+ 2126 - 37
pnpm-lock.yaml