npm.io
1.3.1 • Published 2 months ago

@polyv/eslint-config

Licence
MIT
Version
1.3.1
Deps
13
Size
76 kB
Vulns
0
Weekly
0

@polyv/eslint-config

这是面向 ESLint 10.x 的 flat config 配置包,包含通用插件配置、JavaScript 配置、TypeScript 配置、Vue2 补充配置和微信小程序专项配置。

安装

npm install @polyv/eslint-config eslint@^10 --save-dev

配置导航

  • 通用配置:必须显式组合的基础配置,包含通用忽略项、运行 ESLint 时消费项目目录内的 .gitignore、polyv plugin 注册,以及 promise、sonarjs、import-x 推荐规则。
  • Import-X 配置:提供 eslint-plugin-import-x 推荐规则和 node resolver 设置,已被通用配置继承。
  • SonarJS 配置:提供 eslint-plugin-sonarjs 推荐规则和项目内覆盖规则,已被通用配置继承。
  • JavaScript 配置:纯 JavaScript 项目使用,需和 polyv.configs.common 一起组合。
  • TypeScript 配置:TypeScript 或 TypeScript + JavaScript 混合项目使用,已集成 JavaScript 配置,需和 polyv.configs.common 一起组合。
  • Vue2 配置:Vue2 项目使用,提供 Vue2 SFC 解析、Vue2 essential 规则、ESLint 8 for-vue2-js.js 迁移规则和 Vue2 TypeScript 返回类型推导 settings。
  • 小程序配置:微信小程序项目使用,开启 polyv/no-relative-directory-index-imports 并处理小程序专项忽略。
  • Prettier 配置:接入 eslint-plugin-prettier/recommended 和共享 Prettier 选项,需要放在配置数组最后。

规则导航

快速选择

纯 JavaScript 项目:

// eslint.config.mjs
import polyv from '@polyv/eslint-config';

export default [
  ...polyv.configs.common,
  ...polyv.configs.js
];

TypeScript 或 TypeScript + JavaScript 混合项目:

// eslint.config.mjs
import polyv from '@polyv/eslint-config';

export default [
  ...polyv.configs.common,
  ...polyv.configs.ts
];

Vue2 JavaScript 项目:

// eslint.config.mjs
import polyv from '@polyv/eslint-config';

export default [
  ...polyv.configs.common,
  ...polyv.configs.js,
  ...polyv.configs.vue2
];

Vue2 TypeScript 项目:

// eslint.config.mjs
import polyv from '@polyv/eslint-config';

export default [
  ...polyv.configs.common,
  ...polyv.configs.ts,
  ...polyv.configs.vue2
];

微信小程序项目:

// eslint.config.mjs
import polyv from '@polyv/eslint-config';

export default [
  ...polyv.configs.common,
  ...polyv.configs.miniprogram
];

需要接入 Prettier 时,把 polyv.configs.prettier 放在最后:

// eslint.config.mjs
import polyv from '@polyv/eslint-config';

export default [
  ...polyv.configs.common,
  ...polyv.configs.js,
  ...polyv.configs.prettier
];

插件和规则

  • polyv.configs.common 会默认注册 polyv plugin。如果已经引用了 polyv.configs.common,则无需额外注册该插件。
  • 只需要单独使用自定义规则时,可以引入 plugin 或 @polyv/eslint-config/plugin 后手动注册。
  • 当前自定义规则:

Prettier 配置

消费项目如果需要单独给 Prettier 使用共享配置,可以引入:

// prettier.config.mjs
import prettierConfig from '@polyv/eslint-config/prettier-config';

export default prettierConfig;