1.eslint
解析器
ESLint 默认使用Espree作为其解析器,你可以在配置文件中指定一个不同的解析器
以下解析器与 ESLint 兼容:
Esprima
Babel-ESLint - 一个对Babel解析器的包装,使其能够与 ESLint 兼容。
@typescript-eslint/parser - 将 TypeScript 转换成与 estree 兼容的形式,以便在ESLint中使用。
注意,在使用自定义解析器时,为了让 ESLint 在处理非 ECMAScript 5 特性时正常工作,配置属性 parserOptions 仍然是必须的。
解析器选项
解析器选项可以在 .eslintrc.* 文件使用 parserOptions 属性设置。可用的选项有:
- ecmaVersion - 默认设置为 3,5(默认), 你可以使用6、7、8、9、10、11、12 或 13 来指定你想要使用的 ECMAScript 版本。你也可以用使用年份命名的版本号指定为 2015(同6)、2016(同7)、2017(同8)、2018(同9)、2019(同10)、2020(同11)、2021(同 12)或 2022 (同 13) 以使用基于年份的命名。您还可以设置 “latest” 以使用最新支持的版本。
- sourceType - 设置为 “script” (默认) 或 “module”(如果你的代码是 ECMAScript 模块)。
- allowReserved - 允许使用保留字作为标识符(如果ecmaVersion是 3)。
- ecmaFeatures - 这是个对象,表示你想使用的额外的语言特性:
- globalReturn - 允许在全局作用域下使用 return 语句
- impliedStrict - 启用全局 strict mode (如果 ecmaVersion 是 5 或更高)
- jsx - 启用 JSX
请注意,支持 JSX 语法并不等同于支持 React。React 将特定语义应用于 ESLint 无法识别的 JSX 语法。如果你正在使用 React 并且想要 React 语义支持,我们建议你使用 eslint-plugin-react。
同样的,支持 ES6 语法并不意味着同时支持新的 ES6 全局变量或类型(比如 Set 等新类型)。 对于 ES6 语法,使用 { “parserOptions”: { “ecmaVersion”: 6 } };对于新的 ES6 全局变量,使用 { “env”:{ “es6”: true } }. { “env”: { “es6”: true } } 自动启用es6语法,但 { “parserOptions”: { “ecmaVersion”: 6 } } 不自动启用es6全局变量。
环境定义
一个环境定义了一组预定义的全局变量。可用的环境包括:
- browser - 浏览器环境中的全局变量。
- node - Node.js 全局变量和 Node.js 作用域。
- commonjs - CommonJS 全局变量和 CommonJS 作用域 (用于 Browserify/WebPack 打包的只在浏览器中运行的代码)。
- shared-node-browser - Node.js 和 Browser 通用全局变量。
- es6 - 启用除了 modules 以外的所有 ECMAScript 6 特性(该选项会自动设置 ecmaVersion 解析器选项为 6)。
- es2016- 添加所有 ECMAScript 2016 全局变量并自动将ecmaVersion解析器选项设置为 7。
- es2017- 添加所有 ECMAScript 2017 全局变量并自动将ecmaVersion解析器选项设置为 8。
- es2018- 添加所有 ECMAScript 2018 全局变量并自动将ecmaVersion解析器选项设置为 9。
- es2019- 添加所有 ECMAScript 2019 全局变量并自动将ecmaVersion解析器选项设置为 10。
- es2020- 添加所有 ECMAScript 2020 全局变量并自动将ecmaVersion解析器选项设置为 11。
- es2021- 添加所有 ECMAScript 2021 全局变量并自动将ecmaVersion解析器选项设置为 12。
- es2022- 添加所有 ECMAScript 2022 全局变量并自动将ecmaVersion解析器选项设置为 13。
- worker - Web Workers 全局变量。
- amd - 将 require() 和 define() 定义为像 amd 一样的全局变量。
- mocha - 添加所有的 Mocha 测试全局变量。
- jasmine - 添加所有的 Jasmine 版本 1.3 和 2.0 的测试全局变量。
- jest - Jest 全局变量。
- phantomjs - PhantomJS 全局变量。
- protractor - Protractor 全局变量。
- qunit - QUnit 全局变量。
- jquery - jQuery 全局变量。
- prototypejs - Prototype.js 全局变量。
- shelljs - ShellJS 全局变量。
- meteor - Meteor 全局变量。
- mongo - MongoDB 全局变量。
- applescript - AppleScript 全局变量。
- nashorn - Java 8 Nashorn 全局变量。
- serviceworker - Service Worker 全局变量。
- atomtest - Atom 测试全局变量。
- embertest - Ember 测试全局变量。
- webextensions - WebExtensions 全局变量。
- greasemonkey - GreaseMonkey 全局变量。