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 规则
    }
  }
相关推荐
初遇你时动了情1 小时前
css中backdrop-filter 详细使用 ios毛玻璃效果、filter和backdrop-filter使用说明
前端·css
景彡先生2 小时前
Python Selenium详解:从入门到实战,Web自动化的“瑞士军刀”
前端·python·selenium
程序员卷卷狗3 小时前
JVM 调优实战:从线上问题复盘到精细化内存治理
java·开发语言·jvm
lly2024063 小时前
ASP Folder:深入解析其功能与使用技巧
开发语言
雪域迷影4 小时前
Go语言中通过get请求获取api.open-meteo.com网站的天气数据
开发语言·后端·http·golang·get
Liudef064 小时前
DeepseekV3.2 实现构建简易版Wiki系统:从零开始的HTML实现
前端·javascript·人工智能·html
景早5 小时前
vue 记事本案例详解
前端·javascript·vue.js
ysdysyn6 小时前
C# 进程管理实战:检查与启动EXE程序的完整指南
开发语言·c#
IDOlaoluo6 小时前
PHP-5.2.1.tar.gz 离线安装教程:从源码编译到配置的详细步骤(附安装包)
开发语言·php
wangjialelele6 小时前
Qt中的常用组件:QWidget篇
开发语言·前端·c++·qt