babel-eslint不允许动态导入

cro*_*raf 5 javascript ecmascript-6 eslint webpack babeljs

我使用webpack 2,并且想进行动态导入。Linter在动态导入(即import(...))时出现以下错误:

[js]声明或声明。(JSX属性)导入:true。

我有以下.eslintrc(摘录):

{
  "parser": "babel-eslint",
  "parserOptions": {
    "allowImportExportEverywhere": true
  }
}
Run Code Online (Sandbox Code Playgroud)

已安装以下内容:

"eslint": "^3.16.1",
"babel-eslint": "^7.2.3",
"babel-plugin-dynamic-import-webpack": "^1.0.1",
"babel-plugin-syntax-dynamic-import": "^6.18.0",
Run Code Online (Sandbox Code Playgroud)

babelrc配置:

{
    "presets": [
    "es2015",
    "react"
    ],
    "plugins": ["syntax-dynamic-import", "dynamic-import-webpack"]
}
Run Code Online (Sandbox Code Playgroud)

更新:发生错误的示例(反应式应用)。(这里的错误只是[js] Declaration or statement expected):

const App = () => {

    import('./routes/Main/Main').then((Main) => {});
    return(<div />);
};
Run Code Online (Sandbox Code Playgroud)

cro*_*raf 0

我找到了发生这种情况的原因。

VSCode 似乎有内部 javascript linter,即使 eslint 插件正在检查,它也会被启用。禁用此内部 linter 可以解决该问题。因此,要解决这个问题,请在项目(.vscode/settings.json)、用户或全局 VSCode 设置中进行以下设置:

{
     ...other settings...,
    "javascript.validate.enable": false
}
Run Code Online (Sandbox Code Playgroud)