Package Exports
- eslint-config-ali
- eslint-config-ali/es5
- eslint-config-ali/es6
- eslint-config-ali/react
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (eslint-config-ali) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
eslint-config-ali
eslint-config-ali 是一个可共享 ESLint 配置包,包内启用了一些 ESLint 原生规则和第三方插件规则。
Install
使用本包时,需保证项目同时安装了以下依赖的指定版本(这些依赖在本包的 package.json 中作为 peerDependencies 进行了声明):
- eslint@^5.5.0
- eslint-plugin-import@^2.14.0
- eslint-plugin-react@^7.4.0
- eslint-plugin-react-hooks@^1.6.0
对于未配置过 ESLint 的项目,可执行如下命令进行安装:
npm install --save-dev eslint-config-ali eslint@^5.5.0 eslint-plugin-import@^2.14.0 eslint-plugin-react@^7.4.0 eslint-plugin-react-hooks@^1.6.0
对于已配置过 ESLint 的项目,同样可以执行以上命令安装,但要注意如果你的项目已安装过本包的 peerDependencies 依赖,需保证它们的版本正确。
Usage
在项目的 ESLint 配置 中(即 .eslintrc.*
文件或 package.json
的 eslintConfig
字段中)继承 eslint-config-ali
。
本包提供了 3 份可选的配置,分别针对 ES6 项目(默认)、React 项目、ES5 项目。
对 ES6 项目:
{
"extends": "eslint-config-ali"
}
这份配置针对 ES6 项目,使用 ESLint 原生规则和部分 eslint-plugin-import 插件的规则。
对 React 项目:
{
"extends": "eslint-config-ali/react"
}
这份配置针对 React 的项目,继承了上面对 ES6 项目的配置,并启用了部分 eslint-plugin-react 和 eslint-plugin-react-hooks 插件的规则。
对 ES5 项目:
{
"extends": "eslint-config-ali/es5"
}
这份配置针对使用 ES5 及之前版本 JS 的老项目,全部使用 ESLint 原生规则。
将风格问题降级
本包中有大量 error 级别的代码风格相关规则,如果你不想让风格问题阻塞你的卡点(许多用户根据 ESLint error 进行流程卡点),本包还提供了一套 essential 级别的规则,这个级别将所有风格问题降级为 warn 级别,仅将必要问题报告为 error,引用方式如下:
- ES6 项目:
"extends": "eslint-config-ali/essential"
- React 项目:
"extends": "eslint-config-ali/essential/react"
- ES5 项目:
"extends": "eslint-config-ali/essential/es5"
Learn more
- 如果你对 ESLint 还不熟悉,可通过官网的 Getting Started 快速入门。
- 了解如何在继承本包的基础上对项目的 ESLint 进行个性化配置,可参考官网的 Configuring ESLint。ESLint 配置中常用的几个字段简介:
- extends: 继承一组规则集。
"extends": "eslint-config-ali",
表示继承本包定义的规则配置。 - rules: 配置规则,这里定义的规则会覆盖
extends
的规则。如果觉得本包开启的某条规则过于严格,你可以暂时在这里将其关闭。 - parser: 设置 ESLint 的解析器。ESLint 使用 espree 作为默认的解析器,可以通过这个参数指定其他的解析器。比如指定为 babel-eslint,以解析 Babel 支持但 ESLint 默认解析器不支持的语法。
- globals: 指定代码中可能用到的全局变量,以免全局变量被 no-undef 规则报错。
- env: 指定代码的运行环境,每个环境预定义了一组对应的全局变量,本包已开启的环境有 browser、node、jquery、es6。
- extends: 继承一组规则集。
- 了解如何给自己的 IDE 配置 ESLint,可参考官网的 Integrations。
- 了解常用的 ESLint 命令,如
--fix
、--ext
、-f
,可参考官网的 Command Line Interface。