import/export

Reports funny business with exports, like repeated exports of names or defaults.

Rule Details

export default class MyClass { /*...*/ } // Multiple default exports.

function makeClass() { return new MyClass(...arguments) }

export default makeClass // Multiple default exports.

or

export const foo = function () { /*...*/ } // Multiple exports of name 'foo'.

function bar() { /*...*/ }
export { bar as foo } // Multiple exports of name 'foo'.

In the case of named/default re-export, all n re-exports will be reported, as at least n-1 of them are clearly mistakes, but it is not clear which one (if any) is intended. Could be the result of copy/paste, code duplication with intent to rename, etc.

Further Reading

  • Lee Byron's ES7 export proposal