eslint在命名导出时抛出解析错误意外标记

Tyl*_*nis 10 javascript ecmascript-6 eslint

我有一个index.js文件,其中包含以下命名导出.

export Main from './Main/Main'
Run Code Online (Sandbox Code Playgroud)

但是,eslint不喜欢这个并抛出错误

Parsing error: Unexpected token Main
Run Code Online (Sandbox Code Playgroud)

我不确定为什么应用程序正常工作,我相信这是有效的语法.

我的.eslintrc文件看起来像这样

{
  env: {
    es6: true,
    browser: true
  },
  parserOptions: {
    ecmaVersion: 6,
    sourceType: "module",
    ecmaFeatures: {
      jsx: true,
      experimentalObjectRestSpread: true
    }
  },
  plugins: [
    "react",
  ],
  extends: ["eslint:recommended", "plugin:react/recommended", "standard"],
  "rules": {
    "comma-dangle" : [2, "always-multiline"],
    "semi": [2, "never"],
    "no-extra-semi": 2,
    "jsx-quotes": [2, "prefer-single"],
    "react/jsx-boolean-value": [2, "always"],
    "react/jsx-closing-bracket-location": [2, {selfClosing: "after-props", nonEmpty: "after-props"}],
    "react/jsx-curly-spacing": [2, "never", {"allowMultiline": false}],
    "react/jsx-max-props-per-line": [2, {maximum: 3}],
    "react/jsx-no-literals": 2,
    "react/sort-prop-types": 2,
    "react/self-closing-comp": 2,
    "react/sort-comp": 2
  },
}
Run Code Online (Sandbox Code Playgroud)

Tyl*_*nis 11

弄清楚了.这是一个实验性功能,所以我需要启用babel-eslint作为我的eslint解析器.

现在我的.eslintrc看起来像这样

{
  parser: "babel-eslint",
  env: {
    es6: true,
    browser: true
  },
  parserOptions: {
    ecmaVersion: 6,
    sourceType: "module",
    ecmaFeatures: {
      jsx: true,
      experimentalObjectRestSpread: true
    }
  },
  plugins: [
    "react",
  ],
  extends: ["eslint:recommended", "plugin:react/recommended", "standard"],
  "rules": {
    "comma-dangle" : [2, "always-multiline"],
    "semi": [2, "never"],
    "no-extra-semi": 2,
    "jsx-quotes": [2, "prefer-single"],
    "react/jsx-boolean-value": [2, "always"],
    "react/jsx-closing-bracket-location": [2, {selfClosing: "after-props", nonEmpty: "after-props"}],
    "react/jsx-curly-spacing": [2, "never", {"allowMultiline": false}],
    "react/jsx-max-props-per-line": [2, {maximum: 3}],
    "react/jsx-no-literals": 2,
    "react/sort-prop-types": 2,
    "react/self-closing-comp": 2,
    "react/sort-comp": 2
  },
}
Run Code Online (Sandbox Code Playgroud)

  • 如果这个实验性功能是你需要babel-eslint并且你不想处理开销的唯一原因,你可以使用'./Main/Main';`中的`export {default as Main},这是有效的ES6并将在默认解析器中正常工作. (6认同)