eslint-config-ali
ESLint Shareable Config for Alibaba F2E Guidelines
Last updated 5 months ago by guoyunhe .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ npm install eslint-config-ali 
SYNC missed versions from official npm registry.

eslint-config-ali

本包是《阿里巴巴前端规约》配套的 ESLint 可共享配置,提供了多套配置文件以支持 JavaScript、TypeScript、React、Vue、Node.js 等多种项目类型。

f2elint 接入(推荐)

npx f2elint

手动接入

npm install --save-dev eslint eslint-config-ali

项目配置

基础 JavaScript 项目

针对未使用 React 或 Vue 的原生 JavaScript 项目,使用 ESLint 原生规则和 eslint-plugin-import 规则,使用 @babel/eslint-parser 作为 parser,是本包的默认配置。

ESLint 配置:

{
  "extends": ["eslint-config-ali"]
}

基础 TypeScript 项目

针对未使用 React 或 Vue 的 TypeScript 项目,继承了默认配置,并启用了 @typescript-eslint/eslint-plugin 插件的规则,使用 @typescript-eslint/parser 作为 parser。

ESLint 配置:

{
  "extends": ["eslint-config-ali/typescript"]
}

注意:需要保证项目安装了 typescript@5 依赖,同时根目录下有 tsconfig.json 文件。

React JavaScript 项目

针对 JS React 项目,继承了默认配置,并启用了 eslint-plugin-reacteslint-plugin-react-hooks 的规则。

ESLint 配置:

{
  "extends": ["eslint-config-ali/react"]
}

如果需要无障碍能力:

{
  "extends": ["eslint-config-ali/react", "eslint-config-ali/jsx-a11y"]
}

TypeScript + React 项目

针对 TS React 项目,继承了 JS React 的配置,并启用了 @typescript-eslint/eslint-plugin 插件的规则,使用 @typescript-eslint/parser 作为 parser。

ESLint 配置:

{
  "extends": ["eslint-config-ali/typescript/react"]
}

如果需要无障碍能力:

{
  "extends": [
    "eslint-config-ali/typescript/react",
    "eslint-config-ali/jsx-a11y"
  ]
}

Vue JavaScript 项目

针对 JS Vue 的项目,继承了默认配置,并启用了 eslint-plugin-vue 插件的规则,使用 vue-eslint-parser 作为 parser。

ESLint 配置:

{
  "extends": ["eslint-config-ali/vue"]
}

Vue TypeScript

针对 TS Vue 项目,继承了 JS Vue 的配置,并启用了 @typescript-eslint/eslint-plugin 插件的规则,使用 @typescript-eslint/parser 作为 parser。

ESLint 配置:

{
  "extends": ["eslint-config-ali/typescript/vue"]
}

Node.js JavaScript 项目

针对 Node.js 项目,规则由 ESLint 原生规则和 eslint-plugin-node 提供。

ESLint 配置:

{
  "extends": ["eslint-config-ali/node"]
}

Node.js TypeScript 项目

针对未使用 React 和 Vue 的 TypeScript(Node) 项目,继承了 JS Node.js 配置,并启用了 @typescript-eslint/eslint-plugin 插件的规则,使用 @typescript-eslint/parser 作为 parser。

ESLint 配置:

{
  "extends": ["eslint-config-ali/typescript/node"]
}

Egg.js JavaScript 项目

针对 Egg.js 项目,继承了 Node.js 配置和 egg-config-egg 的 node 规则

ESLint 配置:

{
  "extends": ["eslint-config-ali/egg"]
}

Egg.js TypeScript 项目

针对未使用 React 和 Vue 的 TypeScript(Node) 项目,继承了 JS Node.js 配置,并启用了 @typescript-eslint/eslint-plugin 插件的规则,使用 @typescript-eslint/parser 作为 parser。

ESLint 配置:

{
  "extends": ["eslint-config-ali/typescript/egg"]
}

配合 Prettier 使用

如果你的项目使用 Prettier 进行代码格式化,本包的一些规则可能会跟 Prettier 格式化结果有冲突,例如这条规则。为了避免冲突,你需要手动安装 eslint-config-prettiereslint-plugin-prettier

安装依赖:

npm install --save-dev eslint-config-prettier eslint-plugin-prettier

ESLint 配置:

{
  "extends": ["eslint-config-ali/typescript/react", "plugin:prettier/recommended"]
}

将风格问题降级

为了保证一致的编码风格,本包中大量风格相关的规则被设为了 error 级别,以引起开发者的足够重视。如果你觉得风格问题不足以是 error 级别(有些用户根据 ESLint error 进行流程卡点),本包还提供了一套名为 'essential' 的配置文件,这套配置将所有风格问题降级为 warn 级别,仅将必要问题报告为 error,引用方式为在相应配置的 eslint-config-ali 后面加上 /essential,如对 JS React 项目为 eslint-config-ali/essential/react、对 TS Vue 项目为 eslint-config-ali/essential/typescript/vue

了解更多

  • 如果你对 ESLint 还不熟悉,可以阅读官网的 Getting Started 快速入门。
  • 了解如何为 IDE 配置 ESLint,可以参考官网的 Integrations
  • 了解如何在继承本包的基础上对项目 ESLint 进行个性化配置,可参考官网的 Configuring ESLint。下面简介下 ESLint 配置中的几个常用字段:
    • extends: 继承一组规则集。"extends": "eslint-config-ali", 表示继承本包定义的规则配置。
    • rules: 配置规则,这里定义的规则会覆盖 extends 的规则。如果觉得本包开启的某条规则过于严格,你可以暂时在这里将其关闭。
    • parser: 设置 ESLint 的解析器。ESLint 使用 espree 作为默认的解析器,可以通过这个参数指定其他的解析器。比如指定为 @babel/eslint-parser,以解析 Babel 支持但 ESLint 默认解析器不支持的语法(本包不同配置文件使用的解析器可在简介表格中的「依赖 parser」一列查看)。
    • globals: 指定代码中可能用到的全局变量,以免全局变量被 no-undef 规则报错。
    • env: 指定代码的运行环境,每个环境预定义了一组对应的全局变量,本包已开启的环境有 browser、node、jquery、es6 及几个测试框架的环境。
  • 了解常用的 ESLint 命令,如 --fix--ext,可参考官网的 Command Line Interface

Current Tags

  • 13.0.0                                ...           beta (3 years ago)
  • 15.1.0                                ...           latest (5 months ago)
  • 10.3.3                                ...           old-version (4 years ago)

67 Versions

  • 15.1.0                                ...           5 months ago
  • 15.0.1                                ...           9 months ago
  • 15.0.0                                ...           a year ago
  • 14.2.1                                ...           a year ago
  • 14.2.0                                ...           a year ago
  • 14.1.0                                ...           a year ago
  • 14.0.2                                ...           2 years ago
  • 14.0.1                                ...           3 years ago
  • 14.0.0                                ...           3 years ago
  • 13.1.0                                ...           3 years ago
  • 13.0.0                                ...           3 years ago
  • 12.2.2                                ...           3 years ago
  • 12.2.1                                ...           3 years ago
  • 12.2.0                                ...           3 years ago
  • 12.1.0                                ...           4 years ago
  • 12.0.2                                ...           4 years ago
  • 12.0.1                                ...           4 years ago
  • 12.0.0                                ...           4 years ago
  • 11.4.1                                ...           4 years ago
  • 11.4.0                                ...           4 years ago
  • 11.3.1                                ...           4 years ago
  • 11.3.0                                ...           4 years ago
  • 11.2.0                                ...           4 years ago
  • 11.1.1                                ...           4 years ago
  • 11.1.0                                ...           4 years ago
  • 10.3.3                                ...           4 years ago
  • 11.0.0                                ...           4 years ago
  • 10.3.2 [deprecated]           ...           4 years ago
  • 10.3.1 [deprecated]           ...           4 years ago
  • 10.3.0 [deprecated]           ...           4 years ago
  • 10.2.2                                ...           4 years ago
  • 10.2.1                                ...           4 years ago
  • 10.2.0                                ...           4 years ago
  • 10.1.1                                ...           4 years ago
  • 10.1.0                                ...           4 years ago
  • 10.0.0                                ...           4 years ago
  • 9.1.2                                ...           4 years ago
  • 9.1.1                                ...           4 years ago
  • 9.1.0                                ...           4 years ago
  • 9.0.2                                ...           5 years ago
  • 9.0.1                                ...           5 years ago
  • 9.0.0                                ...           5 years ago
  • 8.0.2                                ...           5 years ago
  • 8.0.1                                ...           5 years ago
  • 8.0.0                                ...           5 years ago
  • 7.1.0                                ...           5 years ago
  • 7.0.0                                ...           5 years ago
  • 6.1.1                                ...           5 years ago
  • 6.1.0                                ...           5 years ago
  • 6.0.0                                ...           6 years ago
  • 5.0.1                                ...           6 years ago
  • 4.1.1                                ...           6 years ago
  • 5.0.0                                ...           6 years ago
  • 4.1.0                                ...           6 years ago
  • 4.0.0                                ...           6 years ago
  • 3.2.0                                ...           6 years ago
  • 3.1.0                                ...           7 years ago
  • 3.0.1                                ...           7 years ago
  • 3.0.0                                ...           7 years ago
  • 2.0.3                                ...           7 years ago
  • 2.0.2                                ...           7 years ago
  • 2.0.1                                ...           7 years ago
  • 2.0.0                                ...           7 years ago
  • 1.0.3                                ...           7 years ago
  • 1.0.2                                ...           7 years ago
  • 1.0.1                                ...           8 years ago
  • 1.0.0                                ...           8 years ago
Downloads
Total 8
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 8
Dev Dependencies (4)
Dependents (1)

© 2010 - cnpmjs.org x YWFE | Home | YWFE