Permalink
Cannot retrieve contributors at this time
185 lines (134 sloc)
3.19 KB
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
codeql-action/node_modules/eslint-plugin-import/docs/rules/prefer-default-export.md
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# import/prefer-default-export | |
<!-- end auto-generated rule header --> | |
In exporting files, this rule checks if there is default export or not. | |
## Rule Details | |
### rule schema | |
```javascript | |
"import/prefer-default-export": [ | |
( "off" | "warn" | "error" ), | |
{ "target": "single" | "any" } // default is "single" | |
] | |
``` | |
### Config Options | |
There are two options available: `single` and `any`. By default, if you do not specify the option, rule will assume it is `single`. | |
#### single | |
**Definition**: When there is only a single export from a module, prefer using default export over named export. | |
How to setup config file for this rule: | |
```javascript | |
// you can manually specify it | |
"rules": { | |
"import/prefer-default-export": [ | |
( "off" | "warn" | "error" ), | |
{ "target": "single" } | |
] | |
} | |
// config setup below will also work | |
"rules": { | |
"import/prefer-default-export": "off" | "warn" | "error" | |
} | |
``` | |
The following patterns are considered warnings: | |
```javascript | |
// bad.js | |
// There is only a single module export and it's a named export. | |
export const foo = 'foo'; | |
``` | |
The following patterns are not warnings: | |
```javascript | |
// good1.js | |
// There is a default export. | |
export const foo = 'foo'; | |
const bar = 'bar'; | |
export default bar; | |
``` | |
```javascript | |
// good2.js | |
// There is more than one named export in the module. | |
export const foo = 'foo'; | |
export const bar = 'bar'; | |
``` | |
```javascript | |
// good3.js | |
// There is more than one named export in the module | |
const foo = 'foo'; | |
const bar = 'bar'; | |
export { foo, bar } | |
``` | |
```javascript | |
// good4.js | |
// There is a default export. | |
const foo = 'foo'; | |
export { foo as default } | |
``` | |
```javascript | |
// export-star.js | |
// Any batch export will disable this rule. The remote module is not inspected. | |
export * from './other-module' | |
``` | |
#### any | |
**Definition**: any exporting file must contain a default export. | |
How to setup config file for this rule: | |
```javascript | |
// you have to manually specify it | |
"rules": { | |
"import/prefer-default-export": [ | |
( "off" | "warn" | "error" ), | |
{ "target": "any" } | |
] | |
} | |
``` | |
The following patterns are *not* considered warnings: | |
```javascript | |
// good1.js | |
//has default export | |
export default function bar() {}; | |
``` | |
```javascript | |
// good2.js | |
// has default export | |
let foo; | |
export { foo as default } | |
``` | |
```javascript | |
// good3.js | |
//contains multiple exports AND default export | |
export const a = 5; | |
export function bar(){}; | |
let foo; | |
export { foo as default } | |
``` | |
```javascript | |
// good4.js | |
// does not contain any exports => file is not checked by the rule | |
import * as foo from './foo'; | |
``` | |
```javascript | |
// export-star.js | |
// Any batch export will disable this rule. The remote module is not inspected. | |
export * from './other-module' | |
``` | |
The following patterns are considered warnings: | |
```javascript | |
// bad1.js | |
//has 2 named exports, but no default export | |
export const foo = 'foo'; | |
export const bar = 'bar'; | |
``` | |
```javascript | |
// bad2.js | |
// does not have default export | |
let foo, bar; | |
export { foo, bar } | |
``` | |
```javascript | |
// bad3.js | |
// does not have default export | |
export { a, b } from "foo.js" | |
``` | |
```javascript | |
// bad4.js | |
// does not have default export | |
let item; | |
export const foo = item; | |
export { item }; | |
``` |