babel-eslint 不允许动态导入

babel-eslint does not allow dynamic import

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

[js] Declaration or statement expected. (JSX attribute) import: true.

我有以下 .eslintrc(摘录):

{
  "parser": "babel-eslint",
  "parserOptions": {
    "allowImportExportEverywhere": true
  }
}

已安装以下内容:

"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",

babelrc 配置:

{
    "presets": [
    "es2015",
    "react"
    ],
    "plugins": ["syntax-dynamic-import", "dynamic-import-webpack"]
}

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

const App = () => {

    import('./routes/Main/Main').then((Main) => {});
    return(<div />);
};

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

似乎 VSCode 启用了内部 javascript linter,即使 eslint 插件正在检查。禁用这个内部 linter 解决了 问题。所以要解决,在项目(.vscode/settings.json),用户或全局 VSCode 设置设置如下:

{
     ...other settings...,
    "javascript.validate.enable": false
}

将以下内容添加到 .eslintrc.js 文件为我解决了这个问题:

  settings: {
    'import/resolver': {
      node: {
        paths: [path.resolve(__dirname, 'src')],
      },
    },
  },