eslint 错误地将 "export x from y"修复为 "exportxfrom y"

标签 eslint eslint-config-airbnb

我有一个index.js它导出目录中的一些文件/模块:

export DaysAsTimePeriod from "./DaysAsTimePeriod"
export Money from "./Money"
export NumberOfProducts from "./NumberOfProducts"
export ItemNumber from "./ItemNumber"

正在运行eslint --fix删除导致语法错误的空格:

exportDaysAsTimePeriodfrom "./DaysAsTimePeriod"
exportMoneyfrom "./Money"
exportNumberOfProductsfrom "./NumberOfProducts"
exportItemNumberfrom "./ItemNumber"
exportAttachedProducts, {NAME as PRODUCTS_NAME} from "./AttachedProducts"

我找不到相关的规则/格式化程序/插件来帮助解决此问题

项目.eslintrc :

注意:我也尝试过 "import/prefer-default-export": [0, { "includeExports": false }],

{
  "extends": "airbnb",
  "env": {
    "browser": true,
    "mocha": true,
    "node": true
  },
  "allowInlineConfig": false,
  "globals": {
    "expect": true,
    "shallow": true,
    "sinon": true,
    "mount": true,
    "snapshot": true,
    "__USEMOCKS__": true
  },
  "rules": {
    "array-callback-return": 0,
    "arrow-body-style": 0,
    "camelcase": 0,
    "class-methods-use-this": 0,
    "comma-dangle": [2, "never"],
    "func-names": 0,
    "import/extensions": 0,
    "import/no-extraneous-dependencies": 0,
    "import/no-named-as-default-member": 0,
    "import/prefer-default-export": 0,
    "indent": [2, 2],
    "jsx-a11y/img-has-alt": 0,
    "jsx-a11y/no-static-element-interactions": 0,
    "no-alert": 0,
    "no-console": 0,
    "no-underscore-dangle": 0,
    "object-curly-spacing": [2, "never"],
    "prefer-arrow-callback": 0,
    "quote-props": ["error", "consistent-as-needed"],
    "quotes": [2, "double"],
    "react/jsx-closing-bracket-location": [2, "after-props"],
    "react/forbid-prop-types": [2, { "forbid": ["any"] }],
    "react/jsx-curly-spacing": [2, "never"],
    "react/jsx-filename-extension": 0,
    "react/jsx-no-bind": 0,
    "react/jsx-uses-react": 1,
    "react/no-array-index-key": 0,
    "react/prefer-stateless-function": 0,
    "react/react-in-jsx-scope": 0,
    "semi": [2, "never"],
    "space-before-function-paren": ["error", "never"],
    "vars-on-top": 0
  },
  "parser": "babel-eslint",
  "parserOptions": {
    "ecmaVersion": 6,
    "ecmaFeatures": {
      "experimentalObjectRestSpread": true
    }
  },
  "plugins": [
    "class-property"
  ]
}

以及来自项目package.json

"eslint": "3.19.0",
"eslint-config-airbnb": "14.1.0",
"eslint-plugin-babel": "4.1.1",
"eslint-plugin-class-property": "1.0.6",
"eslint-plugin-import": "2.2.0",
"eslint-plugin-jsx-a11y": "4.0.0",
"eslint-plugin-react": "6.10.3",

最佳答案

eslint 友好的方式进行导入以指定 {default as <name>} :

export {default as DaysAsTimePeriod} from "./DaysAsTimePeriod"
export {default as Money} from "./Money"
export {default as NumberOfProducts} from "./NumberOfProducts"
export {default as ItemNumber} from "./ItemNumber"

为什么?尽管两种形式都是 equivalent ,第二种形式是 TC39 stage 1 proposed语法

(感谢 Toru Nagashima 在 eslint gitter 上的提醒)

关于eslint 错误地将 "export x from y"修复为 "exportxfrom y",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44691706/

相关文章:

javascript - 如何忽略 JavaScript 中 require 的多个返回值之一?

javascript - ESLint 错误 : Unexpected assignment within a 'while' statement

node.js - 安装 Eslint 和插件时未满足的对等依赖关系

reactjs - 使用 eslint-config-airbnb 后出现 "tsx"错误,缺少文件扩展名 "./reducer"

javascript - 如何使用 Airbnb JavaScript 样式指南设置 Prettier

visual-studio-code - Jsx 缩进冲突 vscode 和 eslint

eslint - 在暂存文件上运行 eslint "ONLY"

javascript - 将 .sass 文件导入 React 组件时出现 ESLint 错误

javascript - eslint 每个函数的最大行数禁用对象速记

javascript - "No ESLint configuration found"错误