【问题标题】:babel-eslint does not allow dynamic importbabel-eslint 不允许动态导入
【发布时间】:2017-10-24 00:57:57
【问题描述】:

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

[js] 需要声明或声明。 (JSX 属性)导入: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 />);
};

【问题讨论】:

  • allowImportExportEverywhereimport() 无关。该问题可能与您的 Babel 配置无关。请发布 linter 抱怨的代码。
  • stackoverflow.com/questions/42394593/…按照这个是必须的。
  • allowImportExportEverywhereimportexport 语句 的配置,而不是import 函数调用的配置。不过这个错误很奇怪。
  • 这不是因为您在配置中添加了syntax-dynamic-importdynamic-import-webpack 吗?一个还不够吗?

标签: javascript webpack ecmascript-6 babeljs eslint


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-07-12
      • 2020-05-19
      • 2017-10-04
      • 1970-01-01
      • 2016-10-13
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多