Eslint 9+Prettier配置在eslint.config.js中

我的eslint和prettier版本

"devDependencies": {
    "@babel/eslint-parser": "^7.25.1",
    "@eslint/js": "^9.9.0",
    "@vitejs/plugin-vue": "^5.1.2",
    "eslint": "^9.9.0",
    "eslint-config-prettier": "^9.1.0",
    "eslint-plugin-import": "^2.29.1",
    "eslint-plugin-node": "^11.1.0",
    "eslint-plugin-prettier": "^5.2.1",
    "eslint-plugin-vue": "^9.27.0",
    "globals": "^15.9.0",
    "prettier": "^3.3.3",
    "typescript": "^5.5.3",
    "typescript-eslint": "^8.1.0",
    "vite": "^5.4.1",
    "vue-tsc": "^2.0.29"
  }

eslint.config.js代码

import globals from "globals";
import pluginJs from "@eslint/js";
import tseslint from "typescript-eslint";
import pluginVue from "eslint-plugin-vue";
import VueEslintParser from "vue-eslint-parser";
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';

export default [
  {
    languageOptions: {
      globals: [globals.browser, globals.es2022, globals.node, globals.jest],
    },
  },
  pluginJs.configs.recommended,
  ...tseslint.configs.recommended,
  ...pluginVue.configs["flat/essential"],

  {
    plugins: {
      pluginVue: pluginVue
    },
    rules: {
      'vue/multi-word-component-names': 'off', // 要求组件名称始终为 “-” 链接的单词
      'vue/script-setup-uses-vars': 'error', // 防止<script setup>使用的变量<template>被标记为未使用
      'vue/no-mutating-props': 'off', // 不允许组件 prop的改变
      'vue/attribute-hyphenation': 'off', // 对模板中的自定义组件强制执行属性命名样式
    }
  },
  {
    plugins: {
      tseslint: tseslint
    },
    rules: {
      '@typescript-eslint/no-unused-vars': 'error', // 禁止定义未使用的变量
      '@typescript-eslint/prefer-ts-expect-error': 'error', // 禁止使用 @ts-ignore
      '@typescript-eslint/no-explicit-any': 'off', // 禁止使用 any 类型
      '@typescript-eslint/no-non-null-assertion': 'off',
      '@typescript-eslint/no-namespace': 'off', // 禁止使用自定义 TypeScript 模块和命名空间。
      '@typescript-eslint/semi': 'off',
    }
  },
  {
    rules: {
      'no-var': 'error', // 要求使用 let 或 const 而不是 var
      'no-multiple-empty-lines': ['warn', { max: 1 }], // 不允许多个空行
      'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
      'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
      'no-unexpected-multiline': 'error', // 禁止空余的多行
      'no-useless-escape': 'off', // 禁止不必要的转义字符
    }
  },
  {
    languageOptions: {
      parser: VueEslintParser,
      ecmaVersion: 'latest',
      sourceType: 'module',
      parserOptions: {
        parser: '@typescript-eslint/parser',

      }
    },
  },
  {
    ignores: ["node_modules/", "dist/"],
  },
  eslintPluginPrettierRecommended,
];

eslintPluginPrettierRecommended放在最后为了防止被其他规则覆盖,

要在Vue项目使用ESLint,首先需要安装ESLint和相关插件。可以通过以下命令安装: ``` npm install eslint eslint-plugin-vue babel-eslint eslint-plugin-import eslint-plugin-node eslint-plugin-promise eslint-plugin-standard --save-dev ``` 安装完成后,在Vue项目根目录下创建一个`.eslintrc.js`文件,并设置ESLint配置。例如,以下是一个简单的配置示例: ```javascript module.exports = { root: true, env: { node: true }, extends: [ "plugin:vue/essential", "eslint:recommended", "@vue/prettier" ], parserOptions: { parser: "babel-eslint" }, rules: { "no-console": process.env.NODE_ENV === "production" ? "error" : "off", "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off" } }; ``` 在`vue.config.js`,可以使用`chainWebpack`方法将ESLint配置添加到Webpack配置。例如,以下是一个简单的示例: ```javascript module.exports = { chainWebpack: config => { config.module .rule("eslint") .test(/\.(js|vue)$/) .enforce("pre") .use("eslint-loader") .loader("eslint-loader") .options({ formatter: require("eslint-friendly-formatter"), emitWarning: true }) .end(); } }; ``` 上面的代码将创建一个名为`eslint`的Webpack规则,并将其应用于JavaScript和Vue文件。`enforce("pre")`确保此规则在其他规则之前运行。`eslint-loader`将应用于规则,并使用`eslint-friendly-formatter`格式化输出。`emitWarning: true`将告诉Webpack在ESLint出现警告时继续构建。 完成上述配置后,运行`npm run lint`即可使用ESLint检查项目的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值