TypeScript [doesn't transform extensions](https://github.com/microsoft/TypeScript/issues/16577) and [doesn't enforce file extensions](https://github.com/microsoft/TypeScript/issues/42813).
npm install eslint-plugin-require-extensionsTypeScript doesn't transform extensions and doesn't enforce file extensions.
This is a simple eslint plugin that ensures that relative imports _and_ exports have .js extensions.
Credit for the original implementation goes to johnrees. ❤️
1. Install
``shell`
npm install --save-dev eslint-plugin-require-extensions
2. Edit .eslintrc`json`
{
"extends": [
"plugin:require-extensions/recommended"
],
"plugins": [
"require-extensions"
]
}
3. Code
`js
// source.js
import Target from './target';
`
4. Lint
`shell`
eslint .``
source.js
1:1 error Relative imports and exports must end with .js require-extensions/require-extensions
5. Fix
`shell`
eslint --fix .`js
// source.js
import Target from './target.js';
``