UNPKG

eslint-config-tsdx

Version:

An ESLint shareable config with rules of tsdx

86 lines (61 loc) 2.29 kB
# eslint-config-tsdx An [ESLint shareable config](https://eslint.org/docs/developer-guide/shareable-configs.html) with rules of [tsdx](https://github.com/formium/tsdx). ### Installing #### Install Dependencies This package requires `eslint@6.x`. Install it if you haven't already: ``` npm install --save-dev eslint@6.x ``` Install this package: ``` npm install --save-dev eslint-config-tsdx ``` This package requires you to have `typescript` installed when (and only when) linting any TypeScript (ts or tsx) files. Install `typescript` if necessary: ``` npm install --save-dev typescript ``` #### Configure `.eslintrc` Add `"tsdx"` to the `"extends"` of your `.eslintrc` file. If you are using React, set `config.settings.react.version` in your `.eslintrc` file. Otherwise, the latest version of React is assumed. Example `.eslintrc` file: ```json { "extends": [ "tsdx" ], "settings": { "react": { "version": "detect" } } } ``` ### Warning Because of the way eslint resolves plugin modules, its documentation tells us that [a shareable config should include its plugin dependencies in "peerDependencies"](https://eslint.org/docs/developer-guide/shareable-configs.html#publishing-a-shareable-config), meaning users of the config would need to install and depend on each plugin package themselves. Parsers work the same way. This essentially describes [eslint issue #3458](https://github.com/eslint/eslint/issues/3458). For your convenience, instead of including plugins and parsers as "peerDependencies", we will include them as "dependencies" *and issue the following warning*: **Do not install alternate versions of the following npm packages in your project:** ``` "@typescript-eslint/eslint-plugin": "2.x" "@typescript-eslint/parser": "2.x" "babel-eslint": "10.x" "eslint-plugin-flowtype": "3.x || 4.x" "eslint-plugin-import": "2.x" "eslint-plugin-jsx-a11y": "6.x" "eslint-plugin-prettier": "3.x" "eslint-plugin-react": "7.x" "eslint-plugin-react-hooks": "1.x || 2.x" "prettier": "2.x" ``` ## TODO for Matt PR tsdx: Org should take over eslint-config-tsdx & use it in tsdx https://github.com/formium/tsdx/blob/master/src/createEslintConfig.ts