Egg.js 项目的合理 ESLint 配置文件模板

Egg.js 项目的合理 ESLint 配置文件模板

安装依赖

bash 复制代码
npm install eslint @babel/eslint-parser eslint-plugin-import eslint-plugin-promise eslint-plugin-node --save-dev
  • extends : 扩展了 eslint-config-egg 以及其他一些常用的插件配置。

  • parser : 使用 @babel/eslint-parser 作为解析器,支持最新的 JavaScript 语法。

  • parserOptions: 设置了解析器选项,包括 ECMAScript 版本和模块类型。

  • env: 设置了 Node.js 和 ES6 环境。

  • settings : 配置了导入解析器,支持 .js.ts 文件。

  • rules: 添加了一些常用的 ESLint 规则,包括对控制台日志、未使用的变量、导入检查、Promise 检查和 Node.js 特定的规则

.eslintrc

javascript 复制代码
{
    "extends": [
      "eslint-config-egg",
      "plugin:import/errors",
      "plugin:import/warnings",
      "plugin:import/typescript",
      "plugin:promise/recommended",
      "plugin:node/recommended"
    ],
    "parser": "@babel/eslint-parser",
    "parserOptions": {
      "ecmaVersion": 2020,
      "sourceType": "module",
      "requireConfigFile": false
    },
    "env": {
      "node": true,
      "es6": true
    },
    "settings": {
      "import/resolver": {
        "node": {
          "extensions": [".js", ".ts"]
        }
      }
    },
    "rules": {
      "no-console": "warn",
      "no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
      "import/no-unresolved": "error",
      "import/named": "error",
      "import/namespace": "error",
      "import/default": "error",
      "import/export": "error",
      "import/extensions": ["error", "always", { "js": "never", "ts": "never" }],
      "import/newline-after-import": "error",
      "import/no-extraneous-dependencies": ["error", { "devDependencies": true }],
      "promise/always-return": "error",
      "promise/no-return-wrap": "error",
      "promise/param-names": "error",
      "promise/catch-or-return": "error",
      "node/no-missing-import": "error",
      "node/no-unpublished-require": "error",
      "node/no-unsupported-features/es-syntax": "error",
      "node/process-exit-as-throw": "error",
      "node/shebang": "error"
    }
  }

但如果同时使用prettier与eslint冲突 可以再补上安装

bash 复制代码
npm install eslint-config-prettier eslint-plugin-prettier --save-dev

这些工具可以帮助你关闭 ESLint 中与 Prettier 冲突的规则,并将 Prettier 作为 ESLint 的规则之一运行

最终配置为

bash 复制代码
{
    "extends": [
      "eslint-config-egg",
      "plugin:import/errors",
      "plugin:import/warnings",
      "plugin:import/typescript",
      "plugin:promise/recommended",
      "plugin:node/recommended",
      "plugin:prettier/recommended", // 添加 Prettier 插件
      "prettier" // 确保 Prettier 覆盖其他规则
    ],
    "parser": "@babel/eslint-parser",
    "parserOptions": {
      "ecmaVersion": 2020,
      "sourceType": "module",
      "requireConfigFile": false
    },
    "env": {
      "node": true,
      "es6": true
    },
    "settings": {
      "import/resolver": {
        "node": {
          "extensions": [".js", ".ts"]
        }
      }
    },
    "rules": {
      "no-console": "warn",
      "no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
      "import/no-unresolved": "error",
      "import/named": "error",
      "import/namespace": "error",
      "import/default": "error",
      "import/export": "error",
      "import/extensions": ["error", "always", { "js": "never", "ts": "never" }],
      "import/newline-after-import": "error",
      "import/no-extraneous-dependencies": ["error", { "devDependencies": true }],
      "promise/always-return": "error",
      "promise/no-return-wrap": "error",
      "promise/param-names": "error",
      "promise/catch-or-return": "error",
      "node/no-missing-import": "error",
      "node/no-unpublished-require": "error",
      "node/no-unsupported-features/es-syntax": "error",
      "node/process-exit-as-throw": "error",
      "node/shebang": "error",
      "no-trailing-spaces": 1, // 禁用 no-trailing-spaces 规则
      "prettier/prettier": ["error", { "singleQuote": true, "semi": false }] // 配置 Prettier 规则
    }
  }
相关推荐
徐同保7 分钟前
为什么修改 .gitignore 后还能提交
前端
一只小bit12 分钟前
Qt 常用控件详解:按钮类 / 显示类 / 输入类属性、信号与实战示例
前端·c++·qt·gui
AC赳赳老秦16 分钟前
DeepSeek 私有化部署避坑指南:敏感数据本地化处理与合规性检测详解
大数据·开发语言·数据库·人工智能·自动化·php·deepseek
Mr -老鬼32 分钟前
前端静态路由与动态路由:全维度总结与实践指南
前端
不知道累,只知道类39 分钟前
深入理解 Java 虚拟线程 (Project Loom)
java·开发语言
Nan_Shu_6141 小时前
学习: Threejs (1)
javascript·学习
国强_dev1 小时前
Python 的“非直接原因”报错
开发语言·python
YMatrix 官方技术社区1 小时前
YMatrix 存储引擎解密:MARS3 存储引擎如何超越传统行存、列存实现“时序+分析“场景性能大幅提升?
开发语言·数据库·时序数据库·数据库架构·智慧工厂·存储引擎·ymatrix
玖疯子1 小时前
技术文章大纲:Bug悬案侦破大会
开发语言·ar
颜酱1 小时前
前端必备动态规划的10道经典题目
前端·后端·算法