Converts your TSLint configuration to the closest reasonable ESLint equivalent.
👉 Did you know TSLint is deprecated?
Hooray!
Use tslint-to-eslint-config
to expedite migrating your project onto ESLint.
Consider taking a peek at the relevant documentation: 🤔
- ESLint itself
- typescript-eslint, which allows TypeScript files to be linted by ESLint
⚠ Coming from Angular? Use angular-eslint instead to coordinate around this tool and others.
npx tslint-to-eslint-config
⚡ (wow, so simple!) ⚡
The tslint-to-eslint-config
command reads in any existing linter, TypeScript, and package configuration files, then creates an .eslintrc.js
result based on them.
For any TSLint rules with corresponding ESLint equivalents, those equivalents will be used in the new configuration. TSLint rules without ESLint equivalents will be wrapped with eslint-plugin-tslint.
Requires Node 14+ (LTS) and TSLint 5.18+
We strongly advise reading docs/FAQs.md before planning your conversion from TSLint to ESLint.
Each of these flags is optional:
comments
: TypeScript configuration or file glob path(s) to convert TSLint rule flags to ESLint within.config
: Path to print the generated ESLint configuration file to.editor
: Path to an editor configuration file to convert linter settings within.eslint
: Path to an ESLint configuration file to read settings from.package
: Path to a package.json file to read dependencies from.prettier
: Addeslint-config-prettier
to the plugins list.tslint
: Path to a TSLint configuration file to read settings from.typescript
: Path to a TypeScript configuration file to read TypeScript compiler options from.
npx tslint-to-eslint-config --comments
Default: none
Indicates to convert from TSLint rule flags to ESLint inline comments.
Comments such as // tslint:disable: tslint-rule-name
will be converted to equivalents like // eslint-disable eslint-rule-name
.
If passed without arguments, respects the excludes
, files
, and includes
in your TypeScript configuration.
If passed a single file path ending with .json
, that is treated as a TypeScript configuration file describing with files to convert.
npx tslint-to-eslint-config --comments tsconfig.json
If passed any other arguments, those are treated as glob paths for file paths to convert:
npx tslint-to-eslint-config --comments 'src/**/*.ts'
npx tslint-to-eslint-config --config .eslintrc.json
Default: .eslintrc.js
Path to print the generated ESLint configuration file to.
The file extension of this path will be used to determine the format of the created file:
.js
file paths will be writtenmodule.exports = ...
JavaScript- Other file paths will default to JSON
npx tslint-to-eslint-config --editor ./path/to/.vscode/settings.json
Default: .vscode/settings.json
Path to an editor configuration file to convert settings settings within. Any VS Code style editor settings for TSLint will be converted to their ESLint equivalents.
npx tslint-to-eslint-config --eslint ./path/to/eslintrc.js
Default: --config
's value
Path to an ESLint configuration file to read settings from.
The generated ESLint configuration file will include any settings import
ed from this file.
npx tslint-to-eslint-config --package ./path/to/package.json
Default: package.json
Path to a package.json
file to read dependencies from.
This will help inform the generated ESLint configuration file's env settings.
npx tslint-to-eslint-config --prettier
Default: false
Add eslint-config-prettier
to the list of ESLint plugins.
We highly recommend you use Prettier for code formatting.
When --prettier
isn't enabled:
- If the output configuration already doesn't enable any formatting rules, it'll extend from
eslint-config-prettier
. - Otherwise, a CLI message will suggest running with
--prettier
.
npx tslint-to-eslint-config --tslint ./path/to/tslint.json
Default: tslint.json
Path to a TSLint configuration file to read settings from.
This file is piped into TSLint's --print-config
to generate the list of rules to enable in the generated ESLint configuration file.
npx tslint-to-eslint-config --typescript ./path/to/tsconfig.json
Default: tsconfig.json
Path to a TypeScript configuration file to read TypeScript compiler options from. This will help inform the generated ESLint configuration file's env settings.
You can use tslint-to-eslint-config
programmatically via its exported functions.
See docs/API for details.
import { convertLintConfig } from "tslint-to-eslint-config";
const result = await convertLintConfig();
See the Code of Conduct and general development docs. 💖