Javascript 语法错误:';导入&x27;和';出口';可能仅出现在顶层-尽管在ESLint中加入了规则
我正在尝试将React本机应用程序转换为React本机Web应用程序 我想进行以下类型的导入: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)
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在生成时进行导入。在您的情况下,我认为您需要动态导入,因为您的代码显然希望在运行时(在浏览器中)做出决策。