eslint-config-greenpie
Version:
GreenPie's ESLint config file
152 lines (106 loc) • 3.08 kB
Markdown
# Pretty tough linting configs
[](http://badge.fury.io/js/eslint-config-greenpie)
This package provides ESLint's shared config that designed to be strict as hell.
## Usage
Install the base package with required dependencies:
```bash
npm install eslint-config-greenpie eslint @stylistic/eslint-plugin --save-dev
```
Then install additional dependencies depending on your use case:
**For TypeScript projects:**
```bash
npm install typescript-eslint --save-dev
```
**For Vue.js projects:**
```bash
npm install eslint-plugin-vue --save-dev
```
**For oxlint users:**
```bash
npm install oxlint --save-dev
```
### ESLint configuration
```js
import { defineConfig } from 'eslint/config';
import { configs } from 'eslint-config-greenpie';
export default defineConfig(
...configs.default,
...configs.vue
);
```
### Oxlint configuration
If using oxlint, add the following to your `.oxlintrc.json` file:
```json
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"extends": [
"./node_modules/eslint-config-greenpie/configs/oxlintrc.jsonc"
]
}
```
See more [examples](#configuration-examples) below.
## Configs (ESLint)
| Config | Description |
|-----------|--------------------------------|
| `default` | Includes `js` and `ts` configs |
| `js` | Includes JavaScript rules |
| `ts` | Includes TypeScript rules |
| `vue` | Includes rules for Vue.js |
## Config (oxlint)
Oxlint has one unified configuration for all supported languages (`.js`, `.ts`, `.vue`). You can granually configure it in your local `.oxlintrc.json` file.
Related ESLint rules are disabled by default if supported by oxlint.
## Configuration examples
### Oxlint
```json
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"extends": [
"./node_modules/eslint-config-greenpie/configs/oxlintrc.jsonc"
],
"rules": {
"eslint/no-magic-numbers": "off",
},
"overrides": [{
"files": ["src/**/*.{ts,vue}"],
"env": {
"browser": true
}
}, {
"files": ["vite.config.mts"],
"env": {
"node": true
}
}]
}
```
### JS/TS rules
```js
import { configs } from 'eslint-config-greenpie';
export default [
...configs.js
];
```
### JS + Vue
```js
import { configs } from 'eslint-config-greenpie';
export default [
...configs.js,
...configs.vue
];
```
### JS + TS + Vue
You will probably need to [configure another parser](https://github.com/vuejs/vue-eslint-parser#parseroptionsparser) for the `<script>` tag.
```js
import { configs } from 'eslint-config-greenpie';
export default [
...configs.default,
...configs.vue
];
```
## Links
* [Registry](https://www.npmjs.com/package/eslint-config-greenpie)
* [Basic ESLint rules](https://eslint.org/docs/rules/)
* [TypeScript rules](https://typescript-eslint.io/rules/)
* [Stylistic rules](https://eslint.style/rules)
* [Vue rules](https://eslint.vuejs.org/rules/)
* [Oxlint documentation](https://oxc.rs/docs/guide/usage/linter.html)