Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vuejs/eslint-config-typescript
eslint-config-typescript for vue projects
https://github.com/vuejs/eslint-config-typescript
Last synced: about 2 months ago
JSON representation
eslint-config-typescript for vue projects
- Host: GitHub
- URL: https://github.com/vuejs/eslint-config-typescript
- Owner: vuejs
- License: mit
- Created: 2019-07-08T14:41:05.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2024-03-11T10:24:25.000Z (6 months ago)
- Last Synced: 2024-04-13T17:37:46.515Z (5 months ago)
- Language: JavaScript
- Homepage:
- Size: 359 KB
- Stars: 104
- Watchers: 6
- Forks: 27
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# @vue/eslint-config-typescript
> eslint-config-typescript for Vue
See [@typescript-eslint/eslint-plugin](https://typescript-eslint.io/rules/) for available rules.
This config is specifically designed to be used by `@vue/cli` & `create-vue` setups
and is not meant for outside use (it can be used but some adaptations
on the user side might be needed - for details see the config file).A part of its design is that this config may implicitly depend on
other parts of `@vue/cli`/`create-vue` setups, such as `eslint-plugin-vue` being
extended in the same resulting config.## Installation
In order to work around [a known limitation in ESLint](https://github.com/eslint/eslint/issues/3458), we recommend you to use this package alongside `@rushstack/eslint-patch`, so that you don't have to install too many dependencies:
```sh
npm add --dev @vue/eslint-config-typescript @rushstack/eslint-patch
```## Usage
This package comes with 2 rulesets.
### `@vue/eslint-config-typescript`
This ruleset is the base configuration for Vue-TypeScript projects.
Besides setting the parser and plugin options, it also turns off several conflicting rules in the `eslint:recommended` ruleset.
So when used alongside other sharable configs, this config should be placed at the end of the `extends` array.An example `.eslintrc.cjs`:
```js
/* eslint-env node */
require("@rushstack/eslint-patch/modern-module-resolution")module.exports = {
extends: [
'eslint:recommended',
'plugin:vue/vue3-essential',
'@vue/eslint-config-typescript'
]
}
```### `@vue/eslint-config-typescript/recommended`
This is extended from the `@typescript-eslint/recommended` ruleset, which is an **_opinionated_** ruleset.
See the [original documentation](https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin/src/configs#recommended) for more information.Some of its rules, however, might conflict with `prettier`.
So when used alongside other sharable configs, this config should be placed after all other configs except for the one from `@vue/eslint-config-prettier` or `eslint-plugin-prettier` in the `extends` array.An example `.eslintrc.cjs`:
```js
/* eslint-env node */
require("@rushstack/eslint-patch/modern-module-resolution")module.exports = {
extends: [
'plugin:vue/vue3-essential',
'@vue/eslint-config-typescript/recommended',
'@vue/eslint-config-prettier'
]
}
```### With Other Community Configs
Work-In-Progress.
~~If you are following the [`standard`](https://standardjs.com/) or [`airbnb`](https://github.com/airbnb/javascript/) style guides, don't manually extend from this package. Please use `@vue/eslint-config-standard-with-typescript` or `@vue/eslint-config-airbnb-with-typescript` instead.~~