babel-eslint不允许动态导入

时间:2017-05-23 21:43:38

标签: javascript webpack ecmascript-6 babeljs eslint

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

  

[js]预期的声明或声明。 (JSX属性)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"]
}

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

const App = () => {

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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

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