为什么在 .eslintrc.js 中同时设置 env.es6=true 和 parserOptions.ecmaVersion=6 ?

Mau*_*uro 7 javascript node.js ecmascript-6 eslint eslintrc

我不明白为什么我需要在两个不同的参数中指定相同的信息,
both env: { es6: true }parserOptions: { ecmaVersion: 6 }

module.exports = {
  env: {
    commonjs: true,
    es6: true,
    node: true
  },
  extends: [
    'eslint:recommended'
  ],
  globals: {
    Atomics: 'readonly',
    SharedArrayBuffer: 'readonly'
  },
  parserOptions: {
    ecmaVersion: 6
  },
};
Run Code Online (Sandbox Code Playgroud)

koo*_*koo 5

ecmaVersion的选项用于parserOptions语法。
env选项适用于全局变量。

例如,如果您想使用 Promise,ecmaVersion:latest这是不够的。
您还必须指定env要使用的环境 ( )。

请注意,该env选项会自动启用新语法。
但就我个人而言,我建议正确设置它们。

配置语言选项

对于 ES6 语法,请使用{ "parserOptions": { "ecmaVersion": 6 } }; 对于新的 ES6 全局变量,请使用{ "env": { "es6": true } }. 设置{ "env": { "es6": true } }自动启用 ES6 语法,但{ "parserOptions": { "ecmaVersion": 6 } }不会自动启用 ES6 全局变量。

欲了解更多信息,请参见此处