UNPKG

@persagy2/eslint-plugin

Version:

一个适用于 vue3.x、typescript 项目的通用eslint预设插件

79 lines (56 loc) 3 kB
<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 过慢, 慎用!!!) |