强制使用特定的ES版本

时间:2016-09-23 10:34:40

标签: javascript ecmascript-6 ecmascript-5 eslint

我有一些将使用Babel处理的文件,因此是用ES6编写的。但是,我也有一些不会通过Babel的文件,因此应该在同一个项目的ES5中。如果我不小心在这些文件中使用了某些ES6功能(例如箭头功能,解构),我是否可以配置Eslint以便抛出错误?

我注意到,设置"parserOptions": {"ecmaVersion": 5}并不能提供理想的效果以及设置"env": {"es6": false}

3 个答案:

答案 0 :(得分:2)

最终结果显示,问题出在我使用的可共享配置中(xo)。在该配置中,ecmaVersion设置为6,ESLint doesn't support override for ecmaVersion

答案 1 :(得分:0)

您可以尝试使用内联注释禁用规则

/* eslint-disable */
    alert('foo');
/* eslint-enable */

另请查看http://eslint.org/docs/user-guide/configuring

答案 2 :(得分:0)

我的配置中有sourceType: "module"。我认为这迫使eslint进入ES6模式。

parserOptions: {
  ecmaVersion: 5,
  sourceType: "module",
},

当我删除sourceType时,eslint确实开始警告不当使用ES6语法。

(虽然这通常来自实际的解析错误而不是linter规则!)

如果您从其他配置继承了sourceType,那么您可以尝试覆盖它,但我不知道默认值(ES5)是什么。