/* 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"]
},
}