eslint 使用总结

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 全局变量。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 monorepo 中使用 prettier 和 eslint 可以非常有效地帮助我们统一代码风格并保持代码质量。 首先,Prettier 是一个代码格式化工具,它能够自动识别代码中的格式问题,并通过自动化调整代码格式,使其在项目中保持一致。在 monorepo 中使用 Prettier 可以确保不同子项目的代码风格保持一致,避免因为多人协作或者多个子项目而导致的格式不一致的问题。可以通过在 monorepo 的根目录中配置 Prettier,并在各个子项目中使用相同的配置文件来实现统一的代码格式。 而 Eslint 是一个静态代码分析工具,可以帮助我们检查代码中的潜在问题、错误和不规范的写法。在 monorepo 中,使用 Eslint 可以帮助我们规定一致的代码质量标准,并对代码进行自动化的检查。可以在 monorepo 的根目录中配置 Eslint,并在各个子项目中使用相同的配置文件,以保持一致的代码规范。 同时,在 monorepo 中使用 prettier 和 eslint,我们可以通过版本控制工具(如 Git)在团队协作中实现持续集成和自动化的代码格式检查。当代码提交到版本控制工具时,可以配置钩子(hooks)来触发 Prettier 和 Eslint 的检查,并在检查不通过时阻止代码提交,从而确保每个提交的代码都符合团队的要求。 总结来说,在 monorepo 中使用 prettier 和 eslint 可以帮助我们统一代码格式和质量标准,提高开发效率,减少潜在问题和维护成本。但需要注意,在配置过程中要保持一致的配置文件,并在团队中进行培训和沟通,以确保所有开发者都能正确使用这些工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值