ESLint (二)配置文件

一、配置方式

  • 注释形式:使用 JavaScript 注释将配置信息直接嵌入到文件中
  • 文件形式
    • .eslintrc.js
    • .eslintrc.yaml 或者 .eslintrc.yml
    • .eslintrc.json
    • package.json 文件中创建 eslintConfig 属性

.eslintrc.js 文件

module.exports = {
  root: true,
  parser: 'babel-eslint',
  parserOptions: {
    sourceType: 'module'
  },
  env: {
    browser: true,
  },
  extends: 'standard',
  plugins: [
    'html'
  ],
  'rules': {
    // allow paren-less arrow functions
    'arrow-parens': 0,
    'semi': 0,
    // allow async-await
    'generator-star-spacing': 0,
    // allow debugger during development
    'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
  }
};

.eslintrc.json 文件

{
  "parserOptions": {
    ...
  },
  "env": {
    ...
  },
  "globals": {
    ...
  }
  "rules": {
    ...
  }
}

.eslintrc.yml 文件

---
  parserOptions:
    ...
  env:
    ...
  globals:
    ...
  rules:
    ...

package.json 文件

{
    "name": "mypackage",
    "version": "0.0.1",
    "eslintConfig": {
        "plugins": ["example"],
        "env": {
            "example/custom": true
        }
    }
}

注意:配置文件如果在主目录下,那么会先使用与文件就近的配置文件,找不到其他的配置文件,最后才使用主目录下的配置文件。

主要配置信息有:

  • 环境(Environments):脚本设计运行的环境。每个环境都带有一组预定义的全局变量。
  • 全局变量(Globals) :脚本在执行期间访问的其他全局变量。
  • 规则(Rules):启用了哪些规则以及错误级别。

二、解析器

module.exports = {
  parser: 'babel-eslint', //解析器
  parserOptions: {
    sourceType: 'module'
  } //解析器选项
}

默认解析器:Espree

三、环境

环境有浏览器 bower,Node 环境 node 等等

module.exports = {
  env: {
    browser: true
  }
}

官网上查找所有环境

四、全局变量

在 JavaScript 文件中使用注释来指定全局变量,请使用以下格式:

/* global var1, var2 */

这定义了两个全局变量,var1var2。如果你想有选择地指定这些全局变量不应该被写入(只读),那么你可以设置每个 false 标志:

/* global var1:false, var2:false */

在配置文件中配置全局变量,请使用 globals 键并指示要使用的全局变量。将每个全局变量名称设置为等于 true (允许覆盖变量)或 false (禁止覆盖)。例如:

module.exports = {
  globals: {
    "var1": true,
    "var2": false
  }
}

注意:启用 no-global-assign 规则禁止修改代码中的只读全局变量。

五、插件

ESLint 支持使用第三方插件。在使用插件之前,您必须使用 npm 来安装它。

要在配置文件中配置插件,使用 plugins 包含插件名称,两种写法

module.exports = {
  plugins: [
    "plugin1",
    "eslint-plugin-plugin2"
  ]
}

注意:由于 Node 的 require 功能,全局安装的 ESLint 实例只能使用全局安装的 ESLint 插件,本地安装的版本只能使用本地安装的插件。不支持混合本地和全局插件。

六、规则

要更改规则设置,您必须将规则 ID 设置为以下值之一:

  • off 或者 0: 关闭该规则
  • warn 或者 1: 将规则打开为警告(不影响退出代码)
  • error 或者 2: 将规则打开为错误(触发时退出代码为 1
module.exports = {
  rules: {
    "eqeqeq": "off",
    "curly": "error",
    "quotes": ["error", "double"]
  }
}

参考

ESLint (一)简介与安装
ESLint(三)常用规则
配置ESLint

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容

  • ESLint 配置 ESlint 被设计为完全可配置的,这意味着你可以关闭每一个规则而只运行基本语法验证,或混合和...
    静默虚空阅读 41,248评论 3 14
  • EsLint入门学习整理 这两天因为公司要求,就对ESLint进行了初步的了解,网上的内容基本上都差不多,但是内容...
    点柈阅读 26,009评论 3 42
  • ESLint最初是由Nicholas C. Zakas 于2013年6月创建的开源项目。它的目标是提供一个插件化的...
    gavinDu阅读 1,783评论 1 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,599评论 18 139
  • ESLint 是一个插件化的 javascript 代码检测工具,它可以用于检查常见的 JavaScript 代码...
    lion1ou阅读 10,778评论 0 7