eslint 配置详解(注释版)

/* eslint-disable */
module.exports = {
  // 解析器选项
  // 指定要支持的 JavaScript 语言版本的选项
  // 应该始终设置解析器选项:
  // 1. 使用默认解析器的时候,ESLint 需要 parserOptions 配置属性才能使 ESLint 与 ECMAScript 5 中未包含的功能正常配合使用
  // 2. 即使使用其他的解析器。解析器会被传入 parserOptions,但是不一定会使用它们来决定功能特性的开关
  "parserOptions": {
    // ecma版本:支持 ES6 语法,默认支持 ECMAScript 5 语法,可以选值有: 3, 5, 6, 7, 8, 9, 10, 11, 12
    // 注意的是不会自动启用支持 ES6 新的全局变量
    "ecmaVersion": 6,
    // 源码类型:如果你的代码在 ECMAScript 模块中可以设置为 "module",默认为 "script"
    // 如果不设置未 "module",那么 export、import 就会报错
    "sourceType": "module",
    // 以对象的形式指定您要使用哪些附加语言特性
    "ecmaFeatures": {
      "globalReturn": false, // 允许在 global 作用域使用 return 语句
      "impliedStrict": false, // 如果 ecmaVersion 设置为 5 或者更高的时候,在 global 作用域启用严格模式。implied 是隐性的意思
      "jsx": false, // 支持 JSX 语法
    },
  },
  // 指定解析器,默认为 Espree
  // =========
  // ESLint 的默认解析器和核心规则仅支持最新的 final 阶段的 ECMAScript 标准,不支持 Babel 提供的实验性(例如,新功能)和非标准(例如,Flow 或 TypeScript 类型)语法。
  // @babel/eslint-parser 是使用 Babel 对源代码转换到 ESLint 可以运行的解析器。
  "parser": "@babel/eslint-parser",
  // =========
  // 设置环境
  // 设置您的脚本在哪种环境中运行。每个环境都会带来一组特定的预定义全局变量。
  // 可以简单理解为批量设置全局变量,这些环境不是互斥的,因此您一次可以定义多个环境。
  // 开启全部环境
  "env": {
    "browser": true,             // 浏览器全局变量
    "node": true,                // Node.js 全局变量和 Node.js 作用域
    "commonjs": true,            // CommonJS 全局变量和 CommonJS 作用域 (启用此环境用于使用 Browserify/WebPack 的 browser-only 代码)
    "shared-node-browser": true, // Node.js 和 Browser 通用的全局变量
    "es6": true,                 // 启用除 modules 以外的所有 ECMAScript 6 特性  (这会自动将 `ecmaVersion` 解析器选项设置为 6)
    "es2017": true,              // 添加所有 ECMAScript 2017 的全局变量并且自动设置 `ecmaVersion` 解析器选项设置为 8
    "es2020": true,              // 添加所有 ECMAScript 2020 的全局变量并且自动设置 `ecmaVersion` 解析器选项设置为 11
    "es2021": true,              // 添加所有 ECMAScript 2021 的全局变量并且自动设置 `ecmaVersion` 解析器选项设置为 12
    "worker": true,              // web workers 全局变量
    "amd": true,                 // 根据 amd 规范定义 `require()` 和 `define()` 作为全局变量
    "mocha": true,               // 添加所有 Mocha 测试全局变量
    "jasmine": true,             // 为版本 1.3 和 2.0 添加所有 Jasmine 测试全局变量
    "jest": true,                // Jest 全局变量
    "phantomjs": true,           // PhantomJS 全局变量
    "protractor": true,          // Protractor 全局变量
    "qunit": true,               // QUnit 全局变量
    "jquery": true,              // jQuery 全局变量
    "greasemonkey": true,        // GreaseMonkey 全局变量
    "prototypejs": true,         // Prototype.js 全局变量
    "shelljs": true,             // ShellJS 全局变量
    "meteor": true,              // Meteor 全局变量
    "mongo": true,               // MongoDB 全局变量
    "applescript": true,         // AppleScript 全局变量
    "nashorn": true,             // Java 8 Nashorn 全局变量
    "serviceworker": true,       // Service Worker 全局变量
    "atomtest": true,            // Atom 测试助手全局变量
    "embertest": true,           // Ember 测试助手全局变量
    "webextensions": true,       // WebExtensions 全局变量
  },
  // 全局变量
  // 如果访问未在同一文件中定义的变量,将会出现 no-undef 警告。如果要在文件内部使用全局变量,为了让 ESLint 不会出现警告,需要进行定义。
  // readonly-可读不可写 writable-可读可写
  "globals": {
    "wx": "readonly",
    "Page": "readonly",
    "Behavior": "readonly",
    "Component": "readonly",
    "getApp": "readonly",
    "getCurrentPages": "readonly",
  },
  // 扩展
  // 可以简单理解为批量设置规则集
  "extends": [
    "eslint:recommended",               // 报告规则页面上标记为 √ 的常见问题。推荐的子集只会在 ESLint 的主要版本上更改。
    "giga-web/variables",               // giga-web 的变量规则集
    "giga-web/stylistic-issues",        // giga-web 的风格问题规则集
  ],
  // 规则
  "rules": {
    "max-lines": ["off"]
  },
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值