Eslint 在使用 babel 解析器时禁用严格模式

Sam*_*zon 5 javascript parsing reactjs eslint babeljs

我正在使用 eslint 来检查 React 项目中的有效 JavaScript。但是,当我同时使用--rule 'strict: 0'--parser=babel-eslint时遇到了问题。举例:

没有 babel 解析器的 Eslint:

eslint --no-eslintrc file.js
Run Code Online (Sandbox Code Playgroud)

不显示输出,因为它没有发现错误。

带有 babel-parser 的 Eslint:

eslint --no-eslintrc --parser=babel-eslint file.js
Run Code Online (Sandbox Code Playgroud)

显示此错误:

file.js
1:1  error  Parsing error: Octal literal in strict mode
> 39 |  language.french.value           = ' caract\350res';
Run Code Online (Sandbox Code Playgroud)

我试图用--rule 'strict: 0'禁用严格模式,但它失败了。我仍然得到先例错误。

您知道使用 babel-parser 禁用严格模式的方法吗?

ika*_*asz 2

我刚刚遇到了同样的问题,终于在github上找到了答案。您可以通过将.eslintrc 文件中的sourceType更改为 来关闭全局严格模式:script

{
  ...
  parser: 'babel-eslint',
  parserOptions: {
    sourceType: 'script'
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您想通过 cli 进行设置,则只需:

eslint --no-eslintrc --parser=babel-eslint --parser-options=sourceType:script file.js
Run Code Online (Sandbox Code Playgroud)