忽略 eslint 错误:'import' 和 'export' 可能只出现在顶层

Posted

技术标签:

【中文标题】忽略 eslint 错误:\'import\' 和 \'export\' 可能只出现在顶层【英文标题】:ignore eslint error: 'import' and 'export' may only appear at the top level忽略 eslint 错误:'import' 和 'export' 可能只出现在顶层 【发布时间】:2017-01-02 16:03:43 【问题描述】:

eslint 中是否可以解除这个错误?

Parsing error: 'import' and 'export' may only appear at the top level

【问题讨论】:

这看起来像是无法解决的问题。见github.com/eslint/eslint/issues/2259 和github.com/eslint/espree/issues/124;特别是 124 末尾的 dev 引述,他说他基本上认为没有理由支持无效语法。 另见:Why must import / export declarations be top level in es2015? 【参考方案1】:

ESLint 本身不支持这一点,因为这违反了规范。但是如果你使用 babel-eslint 解析器,那么在你的 eslint 配置文件中你可以这样做:


  "parser": "babel-eslint",
  "parserOptions": 
    "sourceType": "module",
    "allowImportExportEverywhere": true
  

文档参考:https://github.com/babel/babel-eslint#configuration

【讨论】:

似乎不需要 babel-eslint 非***导入现在是规范的一部分并被广泛使用 现在支持esline check my answer【参考方案2】:

eslint 6.2 中添加了对动态导入的支持。

您需要将 ecmaVersion 设置为 11(或 2020)。

"parserOptions": 
    "ecmaVersion": 11
    ...

您可以在他们的online demo 中进行测试。

【讨论】:

会这样工作吗? "eslintConfig": "extends": "react-app", "parserOptions": "ecmaVersion": 11 , 仅此一项对我不起作用,我也必须添加以下行 - "sourceType": "module" 它在sourceType: script的在线演示中确实有效【参考方案3】:

我的解决方案以防其他人不起作用

"parserOptions": 
    "ecmaVersion": 6,
    "sourceType": "module"

【讨论】:

以上是关于忽略 eslint 错误:'import' 和 'export' 可能只出现在顶层的主要内容,如果未能解决你的问题,请参考以下文章

Eslint 错误,规则“import/no-cycle”的配置无效

设置 ESLINT 以忽略“额外分号”等警告

忽略或防止 ESLint 错误破坏 React 项目中的构建 (create-react-project)

加载插件导入失败:“eslint-plugin-import”

如何从导入“react”中删除未解决的 ESlint 错误

未找到规则“导入/扩展”的 ESLint 定义