@persagy2/eslint-plugin
Version:
一个适用于 vue3.x、typescript 项目的通用eslint预设插件
79 lines (56 loc) • 3 kB
Markdown
<h2 style='text-align:center'>@persagy2/eslint-pluin</h2>
> Tips:
>
> - 当前版本仅适用于 esm `{ "type": "module" }` 项目, cjs项目需要使用老版本 `[@persagy2/eslint-plugin@legacy](https://www.npmjs.com/package/@persagy2/eslint-plugin/v/0.2.0)`
> - 安装前, 需要移除项目中存在的其他 `eslint` 依赖, 用来保证与 `@pesagy2/eslint-plugin` 不产生依赖冲突 (已内置了 eslint 相关的依赖项)~
# 简介
一个适用于 vue3.x, typescript 项目的通用 eslint 规则预设插件。相比于上一个版本, 这个版本对于规则的选用上做了大量减法 (不再进行大量的重复性校验), 所以请确保项目
# 开始使用
### 1. 安装依赖
```bash
npm install @persagy2/eslint-plugin -D
# or
yarn add @persagy2/eslint-plugin --dev
```
### 2. 配置规则
> Tips: 遵循 [eslint 插件配置](https://eslint.org/docs/latest/use/getting-started) 将这个库当作插件使用即可
在项目根目录下创建 `eslint.config.ts` 配置文件, 文件内容如下:
#### Plan.1 (推荐) 使用创建配置方法创建
```typescript
import { createEslintConfig } from '@persagy2/eslint-plugin'
/** eslint 配置 */
export default createEslintConfig({})
```
#### Plan.2 自行配置
```typescript
import type { Linter } from 'eslint'
/** eslint 配置 */
export default <Linter.Config>{
root: true,
/** 配置规则等级 */
extends: ['plugin:@persagy2/<recommend>'],
/** 全局变量配置 */
globals: {},
/** 自定义规则配置 */
rules: {}
}
```
### 3. 修改 package.json, 添加 lint 命令
```json
{
"scripts": {
"lint": "eslint ./src/**/*.{ts,js,vue,md,json,less,svg}",
"lint:fix": "eslint ./src/**/*.{ts,js,vue,md,json,less,svg} --fix"
}
}
```
# 最佳实践
### 合适的 `lint` 时机
在一个版本结束后, 做收尾工作时, 建议执行一下 `lint:fix` 命令, 对已有代码做一下规范性修正. 日常开发中, 遵循 ts 严格模式的策略即可.
### 规则等级
| 等级 | 描述 | 说明 |
| --------- | -------- | -------------------------------------------------------------------------------------------------------- |
| basic | 基础策略 | 强制性语义语法检查 (建议仅 js 项目使用) |
| recommend | 推荐策略 | 编码范式检查, 提高 code 的工整性 |
| strict | 严格策略 | 注释量、命名策略方面的检测, 提高代码可维护性 |
| normal | 标准策略 | 全量代码检查 (注意: 此等级包含了原定于 basic, recommend 等级的全量规则, 所以可能导致 lint 过慢, 慎用!!!) |