🔧 This rule is automatically fixable by the --fix
CLI option.
We can omit file extensions in import
/export
declarations.
import foo from "./path/to/a/file" // maybe it's resolved to 'file.js' or 'file.json'
export * from "./path/to/a/file"
However, --experimental-modules has declared to drop the file extension omition.
Also, we can import a variety kind of files with bundlers such as Webpack. In the situation, probably explicit file extensions help us to understand code.
This rule enforces the style of file extensions in import
/export
declarations.
This rule has a string option and an object option.
{
"n/file-extension-in-import": [
"error",
"always" or "never",
{
".xxx": "always" or "never",
}
]
}
"always"
(default) requires file extensions inimport
/export
declarations."never"
disallows file extensions inimport
/export
declarations..xxx
is the overriding setting for specific file extensions. You can use arbitrary property names which start with.
.
Examples of 👎 incorrect code for the "always"
option:
/*eslint n/file-extension-in-import: ["error", "always"]*/
import foo from "./path/to/a/file"
Examples of 👍 correct code for the "always"
option:
/*eslint n/file-extension-in-import: ["error", "always"]*/
import eslint from "eslint"
import foo from "./path/to/a/file.js"
Examples of 👎 incorrect code for the "never"
option:
/*eslint n/file-extension-in-import: ["error", "never"]*/
import foo from "./path/to/a/file.js"
Examples of 👍 correct code for the "never"
option:
/*eslint n/file-extension-in-import: ["error", "never"]*/
import eslint from "eslint"
import foo from "./path/to/a/file"
Examples of 👍 correct code for the ["always", { ".js": "never" }]
option:
/*eslint n/file-extension-in-import: ["error", "always", { ".js": "never" }]*/
import eslint from "eslint"
import script from "./script"
import styles from "./styles.css"
import logo from "./logo.png"
This can be configured in the shared settings settings.tsconfigPath
.
Please see the shared settings documentation for more information.
This can be configured in the shared settings settings.typescriptExtensionMap
.
Please see the shared settings documentation for more information.