Просмотр исходного кода

fix: vue-eslint-parser依赖安装

johnsen 9 месяцев назад
Родитель
Сommit
dd4704c4a4
3 измененных файлов с 51 добавлено и 52 удалено
  1. 18 46
      .eslintrc.js
  2. 32 6
      package-lock.json
  3. 1 0
      package.json

+ 18 - 46
.eslintrc.js

@@ -1,55 +1,27 @@
 module.exports = {
   root: true,
   env: {
-    browser: true,
-    node: true
+    node: true,
+    browser: true
+  },
+  parser: 'vue-eslint-parser', // 解析 .vue 文件
+  parserOptions: {
+    parser: '@babel/eslint-parser', // 解析 JS
+    ecmaVersion: 2020,
+    sourceType: 'module'
   },
   extends: [
-    'plugin:vue/essential',
-    'eslint:recommended',
-    'prettier',
-    'plugin:prettier/recommended'
+    'plugin:vue/recommended', // Vue2 官方推荐规则
+    'eslint:recommended', // ESLint 推荐规则
+    'plugin:prettier/recommended' // 整合 Prettier
   ],
-  plugins: ['vue', 'prettier'],
   rules: {
-    indent: ['error', 2, { SwitchCase: 1 }],
-    'vue/script-indent': [
-      'error',
-      2,
-      {
-        baseIndent: 1
-      }
-    ],
-    'vue/html-indent': [
-      'error',
-      2,
-      {
-        attribute: 1,
-        baseIndent: 1,
-        closeBracket: 0,
-        alignAttributesVertically: true,
-        ignores: []
-      }
-    ],
-    'prettier/prettier': 'error',
-    'space-before-function-paren': [
-      'error',
-      {
-        anonymous: 'always',
-        named: 'always',
-        asyncArrow: 'always'
-      }
-    ],
-    indent: ['error', 2, { SwitchCase: 1 }],
-    'vue/script-indent': [
-      'error',
-      2,
-      {
-        baseIndent: 1
-      }
-    ]
-  },
-  parserOptions: {
-    parser: 'babel-eslint'
+    'prettier/prettier': 'off',
+    // 自定义规则 (示例)
+    'vue/multi-word-component-names': 'off', // 关闭组件名多单词要求
+    'vue/no-v-html': 'off', // 允许使用 v-html
+    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
+    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
+    'no-prototype-builtins': 'off' // 将 Prettier 警告视为 ESLint 警告
   }
 }

+ 32 - 6
package-lock.json

@@ -42,6 +42,28 @@
         "source-map": "^0.5.0"
       }
     },
+    "@babel/eslint-parser": {
+      "version": "7.28.0",
+      "resolved": "https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.28.0.tgz",
+      "integrity": "sha512-N4ntErOlKvcbTt01rr5wj3y55xnIdx1ymrfIr8C2WnM1Y9glFgWaGDEULJIazOX3XM9NRzhfJ6zZnQ1sBNWU+w==",
+      "requires": {
+        "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
+        "eslint-visitor-keys": "^2.1.0",
+        "semver": "^6.3.1"
+      },
+      "dependencies": {
+        "eslint-visitor-keys": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+          "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="
+        },
+        "semver": {
+          "version": "6.3.1",
+          "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
+          "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
+        }
+      }
+    },
     "@babel/generator": {
       "version": "7.16.8",
       "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz",
@@ -1914,6 +1936,14 @@
         "glob-to-regexp": "^0.3.0"
       }
     },
+    "@nicolo-ribaudo/eslint-scope-5-internals": {
+      "version": "5.1.1-v1",
+      "resolved": "https://registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
+      "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
+      "requires": {
+        "eslint-scope": "5.1.1"
+      }
+    },
     "@nodelib/fs.stat": {
       "version": "1.1.3",
       "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
@@ -7453,7 +7483,6 @@
       "version": "5.1.1",
       "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz",
       "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
-      "dev": true,
       "requires": {
         "esrecurse": "^4.3.0",
         "estraverse": "^4.1.1"
@@ -7518,7 +7547,6 @@
       "version": "4.3.0",
       "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz",
       "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
-      "dev": true,
       "requires": {
         "estraverse": "^5.2.0"
       },
@@ -7526,16 +7554,14 @@
         "estraverse": {
           "version": "5.3.0",
           "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
-          "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-          "dev": true
+          "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
         }
       }
     },
     "estraverse": {
       "version": "4.3.0",
       "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz",
-      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
-      "dev": true
+      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
     },
     "esutils": {
       "version": "2.0.3",

+ 1 - 0
package.json

@@ -22,6 +22,7 @@
     "lint:fix": "eslint . --ext .js,.vue --fix"
   },
   "dependencies": {
+    "@babel/eslint-parser": "^7.14.7",
     "@fullcalendar/bootstrap": "^5.9.0",
     "@fullcalendar/core": "^5.9.0",
     "@fullcalendar/daygrid": "^5.9.0",