如何配置ESLint以使其不允许默认导出

时间:2017-06-05 22:03:26

标签: javascript eslint

我已经在网上搜索了StackOverflow很长一段时间没有成功。

我尝试做的事情让ESLint将以下内容标记为错误:

export default ...;

default为关键点。到目前为止,我所获得的最好的是对eslint-plugin-import插件及其一些规则的引用,这些规则可以使我更接近目标,即no-anonymous-default-export规则。但即使使用此规则,以下默认导出也是有效的:

const foo = 123
export default foo

export default class MyClass() {}

export default function foo() {}

如何配置ESLint,使这四个也被视为错误?

2 个答案:

答案 0 :(得分:4)

您可以使用no-restricted-syntax rule执行此操作。尝试在demo中粘贴此内容以进行尝试(您需要先在选项中将“源类型”更改为“模块”):

/* eslint "no-restricted-syntax": ["error", {
    "selector": "ExportDefaultDeclaration",
    "message": "Prefer named exports"
  }] */
export default class Foo { } // 5:1 - Prefer named exports (no-restricted-syntax)

答案 1 :(得分:1)

如果您已经在使用eslint-plugin-import,则可以使用no-default-export规则(该规则于2018年2月左右添加)。