如何在ESLint的.eslintrc文件中配置ES7环境选项?
关于ESLint中ES7(ES2016+)配置的说明
嘿,我来帮你搞清楚这个ESLint配置的问题~
首先要纠正一个误区:ESLint的env配置里并没有es7这个选项,所以你改成"es7": true是不会生效的。ESLint在env里的es6选项其实已经涵盖了ES6及所有后续ES版本的基础环境支持,不需要单独设置es7/es8这类版本项。
如果你想启用ES2016(也就是大家常说的ES7)及更高版本的语法支持,需要通过parserOptions.ecmaVersion来指定,具体操作如下:
正确的配置步骤
- 保持
env里的es6: true不变,它负责启用ES6的全局变量和环境预设。 - 在你的
.eslintrc中添加parserOptions字段,设置ecmaVersion为对应的版本号:- 要支持ES2016(ES7),设为
7 - 要支持最新的ES语法特性,直接设为
"latest"更方便
- 要支持ES2016(ES7),设为
- 结合你提供的现有配置,修改后的完整
.eslintrc应该是这样的:
{ "globals": { "com": true, "oData": false, "sakp": false, "fin": true, "cloud": true, "bsuite": false, "cordova": false, "ui": true, "webide": false, "asyncTest": false, "i2d": true, "gltrade": false, "drilldown": true, "opaTest": false, "ux": true, "test": false, "$": false, "module": false, "ai": false, "notEqual": false, "notDeepEqual": false, "throws": false, "ssuite": false, "deepEqual": false, "s2p": false, "Promise": false, "ehs": false, "sinon": false, "stop": false, "util": true, "slo": false, "mdm": false, "mytravelandexpense": false, "strictEqual": false, "cec": false, "cus": false, "notStrictEqual": false, "fscm": false, "fm": true, "nw": true, "shcm": false, "fcg": true, "URI": false, "fs": true, "retail": false, "d3": false, "hcm": false, "oil": true, "assert": false, "hpa": false, "ok": false, "sap": true, "QUnit": false, "cross": true, "srm": false, "equal": false, "expect": false, "jQuery": false, "publicservices": true, "uxcc": false, "equals": false, "tl": false, "travel": true }, "env": { "node": false, "browser": true, "amd": true, "mocha": true, "jasmine": false, "es6": true }, "parserOptions": { "ecmaVersion": "latest" // 或者指定具体版本号,比如7对应ES2016 } }
补充说明
- 如果你的项目使用了一些实验性的ES特性,可能需要搭配
@babel/eslint-parser这类解析器,同时配置对应的Babel预设,但对于ES2016+的标准特性(比如Array.prototype.includes、await等),默认的Espree解析器只要设置对ecmaVersion就能支持。 - 你之前查阅的ESLint官方文档里,相关说明藏在「Specifying Parser Options」章节,只是没有直接提到
es7这个不存在的选项~
内容的提问来源于stack exchange,提问作者softshipper
相关产品推荐
相关产品推荐

