当前位置: 首页 > article >正文

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

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

安装依赖

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

{
    "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冲突  可以再补上安装

npm install eslint-config-prettier eslint-plugin-prettier --save-dev

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

最终配置为

{
    "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 规则
    }
  }


http://www.kler.cn/news/363587.html

相关文章:

  • 项目管理的主要内容包括哪些,项目工具有哪些
  • 大模型系列——幻觉
  • 激活函数(sigmoid、tanh、ReLu)
  • 为什么诺贝尔物理学奖颁给了 AI 大神
  • 音质最好的麦克风有哪些?领夹麦克风哪个品牌好?麦克风十大品牌
  • MIT-OC Electrochemical Energy Systems4-7
  • qt 构建、执行qmake、运行、重新构建、清除
  • G - Add and Multiply Queries
  • C语言程序设计:现代设计方法习题笔记《chapter4》
  • Qt 实战(11)样式表 | 11.2、使用样式表
  • el-table动态新增/删除表单行及校验规则
  • 5G 现网信令参数学习(1) - MIB
  • 【openwrt-21.02】T750 openwrt 概率出现nat46_ipv4_input+0x90/0x4b4问题分析及解决方案
  • 【C++干货篇】——C/C++内存管理
  • yolov8s.pt转换成onxx再转换成rknn模型用于RK3588
  • arp代答观察
  • LeetCode:第1290题 二进制链表转整数
  • 构建物联网智能项目的框架与实践
  • 短视频去水印小程序流量主最新接口带配音功能
  • Python 学习笔记(十二)—— 网络编程
  • Ai环境安装教程
  • 【进阶OpenCV】 (17)-- Dlib库 --实现人脸检测
  • 家庭宽带的ip地址是固定的吗?宽带ip地址怎么修改‌
  • 深入理解 Webpack:现代前端开发的模块打包器
  • 二叉树习题其五【力扣】【算法学习day.12】
  • 【Flutter】页面布局:层叠布局(Stack、Positioned)