1.0.5 • Published 11 months ago

@eqian/eslint-config-preset v1.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

eslint-config

在开发项目中是否还要为eslint的各种配置而烦恼?是否每次创建新项目而进行不断的复制、粘贴eslint配置? 现在,配置一些常用的eslint预设规则,可以解决以上问题。 采用eslint9.x以上版本,使用扁平化配置规则,即对象数组方式

安装

// npm insatll
npm install @eqian/eslint-config-preset --save-dev

// pnpm insatll
pnpm install @eqian/eslint-config-preset -D

使用

import { eslintPresets } from '@eqian/eslint-config';
export default eslintPresets([
  {
      // 内置相关忽略文件,同样,也可以使用全局忽略文件,规则请查阅eslint文档
    ignores: ['eslint.config.ts', '.yalc', 'yalc'],
    name: 'ignores',
  },
]);

预设ESlint规则

  • 预设相关JavaScript规则
  • 导入相关排序规则
  • 默认启用vue规则,如果非vue项目,可以传入第二个参数{vue:false}

自定义规则

支持添加自定义规则,详情查阅插件文档 如,使用单引号规则

import { eslintPresets } from '@eqian/eslint-config';
export default eslintPresets([
    {
        ignores: ['eslint.config.ts', '.yalc', 'yalc'],
        name: 'test',
    },
    // 自定义规则
    {
        rules: {
            "prettier/prettier": [
                "warn",
                {
                    "singleQuote": true
                }
            ],
            "@stylistic/quotes": ["error", "single"],
        }
    }
]);

配合prettier使用

已经内置prettier预设,在根目录的package.json中添加如下即可

{
  "name": "xxx",
  "type": "module",
  "prettier": "@eqian/eslint-config-preset/prettier"
}

预设prettier规则

  • 单引号
  • 末尾使用分号
  • 函数单个参数省略括号
  • ...

自定义prettier规则

可根据prettier文档进行配置 如根目录下新建prettier.config.mjs

// prettier.config.mjs
import prettier from '@eqian/eslint-config-preset/prettier'
const config = {
    ...prettier,
    semi: false,// 不使用分号结尾
    singleQuote: false, // 使用双引号
};

export default config;

模式切换

为了应对不同框架的eslint规则配置,现在支持进行模式切换。 通过配置mode模式,进行生效,默认为vue,支持模式为'vue' | 'react' | 'normal'

依赖项及版本号

PackageVersion
@stylistic/eslint-plugin^2.10.1
@types/eslint-config-prettier^6.11.3
@typescript-eslint/parser^8.14.0
eslint-config-flat-gitignore^0.3.0
eslint-config-prettier^9.1.0
eslint-import-resolver-typescript^3.6.3
eslint-plugin-import-x^4.4.2
eslint-plugin-perfectionist^3.9.1
eslint-plugin-prettier^5.2.1
eslint-plugin-react^7.37.2
eslint-plugin-react-hooks^5.1.0
eslint-plugin-react-refresh^0.4.16
eslint-plugin-unused-imports^4.1.4
eslint-plugin-vue^9.31.0
globals^15.13.0
prettier^3.3.3
typescript-eslint^8.14.0
vue-eslint-parser^9.4.3