Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 语法错误:';导入&x27;和';出口';可能仅出现在顶层-尽管在ESLint中加入了规则_Javascript_React Native_Webpack_Eslint_React Native Web - Fatal编程技术网

Javascript 语法错误:';导入&x27;和';出口';可能仅出现在顶层-尽管在ESLint中加入了规则

Javascript 语法错误:';导入&x27;和';出口';可能仅出现在顶层-尽管在ESLint中加入了规则,javascript,react-native,webpack,eslint,react-native-web,Javascript,React Native,Webpack,Eslint,React Native Web,我正在尝试将React本机应用程序转换为React本机Web应用程序 我想进行以下类型的导入: if (Platform.OS !== 'web') { import { Route, Link, Switch, push, DeepLinking } from "react-router-native"; } 但是我得到了一个错误: Syntax error: 'import' and 'export' may only appear at the top level (16:4)

我正在尝试将React本机应用程序转换为React本机Web应用程序

我想进行以下类型的导入:

if (Platform.OS !== 'web') {
    import { Route, Link, Switch, push, DeepLinking } from "react-router-native";
}
但是我得到了一个错误:

Syntax error: 'import' and 'export' may only appear at the top level (16:4)
现在,我尝试在我的package.json中添加一个ESLint配置,以防止出现这种情况:

  "eslintConfig": {
    "parser": "babel-eslint",
    "parserOptions": {
      "sourceType": "module",
      "allowImportExportEverywhere": true
    }
  }
但它仍在发生


如何允许动态导入?

这不是一个linting问题,而是文字代码问题。毕竟,你会得到一个SyntaxError。该错误确实解释了问题所在-块中不能有
import
,它必须是顶级的
import
/
export
语句被设计为可静态分析的,因此如果您有条件地想要导入某些内容,则需要运行逻辑,因此在不运行应用程序的情况下无法对其进行分析。
import的动态形式(“somemodule.js”)
在IE11中不起作用,但它允许动态导入模块。它返回一个承诺。@我在webpack.config.js或.babelrc中所做的任何更改似乎都没有改变错误消息您必须使用本机JavaScript动态版本,或者让Babel在生成时进行导入。在您的情况下,我认为您需要动态导入,因为您的代码显然希望在运行时(在浏览器中)做出决策。