You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
2.9 KiB
116 lines
2.9 KiB
1 month ago
|
# ESLintRC Library
|
||
|
|
||
|
This repository contains the legacy ESLintRC configuration file format for ESLint. This package is not intended for use outside of the ESLint ecosystem. It is ESLint-specific and not intended for use in other programs.
|
||
|
|
||
|
**Note:** This package is frozen except for critical bug fixes as ESLint moves to a new config system.
|
||
|
|
||
|
## Installation
|
||
|
|
||
|
You can install the package as follows:
|
||
|
|
||
|
```
|
||
|
npm install @eslint/eslintrc --save-dev
|
||
|
|
||
|
# or
|
||
|
|
||
|
yarn add @eslint/eslintrc -D
|
||
|
```
|
||
|
|
||
|
## Usage (ESM)
|
||
|
|
||
|
The primary class in this package is `FlatCompat`, which is a utility to translate ESLintRC-style configs into flat configs. Here's how you use it inside of your `eslint.config.js` file:
|
||
|
|
||
|
```js
|
||
|
import { FlatCompat } from "@eslint/eslintrc";
|
||
|
import js from "@eslint/js";
|
||
|
import path from "path";
|
||
|
import { fileURLToPath } from "url";
|
||
|
|
||
|
// mimic CommonJS variables -- not needed if using CommonJS
|
||
|
const __filename = fileURLToPath(import.meta.url);
|
||
|
const __dirname = path.dirname(__filename);
|
||
|
|
||
|
const compat = new FlatCompat({
|
||
|
baseDirectory: __dirname, // optional; default: process.cwd()
|
||
|
resolvePluginsRelativeTo: __dirname, // optional
|
||
|
recommendedConfig: js.configs.recommended, // optional
|
||
|
allConfig: js.configs.all, // optional
|
||
|
});
|
||
|
|
||
|
export default [
|
||
|
|
||
|
// mimic ESLintRC-style extends
|
||
|
...compat.extends("standard", "example"),
|
||
|
|
||
|
// mimic environments
|
||
|
...compat.env({
|
||
|
es2020: true,
|
||
|
node: true
|
||
|
}),
|
||
|
|
||
|
// mimic plugins
|
||
|
...compat.plugins("airbnb", "react"),
|
||
|
|
||
|
// translate an entire config
|
||
|
...compat.config({
|
||
|
plugins: ["airbnb", "react"],
|
||
|
extends: "standard",
|
||
|
env: {
|
||
|
es2020: true,
|
||
|
node: true
|
||
|
},
|
||
|
rules: {
|
||
|
semi: "error"
|
||
|
}
|
||
|
})
|
||
|
];
|
||
|
```
|
||
|
|
||
|
## Usage (CommonJS)
|
||
|
|
||
|
Using `FlatCompat` in CommonJS files is similar to ESM, but you'll use `require()` and `module.exports` instead of `import` and `export`. Here's how you use it inside of your `eslint.config.js` CommonJS file:
|
||
|
|
||
|
```js
|
||
|
const { FlatCompat } = require("@eslint/eslintrc");
|
||
|
const js = require("@eslint/js");
|
||
|
|
||
|
const compat = new FlatCompat({
|
||
|
baseDirectory: __dirname, // optional; default: process.cwd()
|
||
|
resolvePluginsRelativeTo: __dirname, // optional
|
||
|
recommendedConfig: js.configs.recommended, // optional
|
||
|
allConfig: js.configs.all, // optional
|
||
|
});
|
||
|
|
||
|
module.exports = [
|
||
|
|
||
|
// mimic ESLintRC-style extends
|
||
|
...compat.extends("standard", "example"),
|
||
|
|
||
|
// mimic environments
|
||
|
...compat.env({
|
||
|
es2020: true,
|
||
|
node: true
|
||
|
}),
|
||
|
|
||
|
// mimic plugins
|
||
|
...compat.plugins("airbnb", "react"),
|
||
|
|
||
|
// translate an entire config
|
||
|
...compat.config({
|
||
|
plugins: ["airbnb", "react"],
|
||
|
extends: "standard",
|
||
|
env: {
|
||
|
es2020: true,
|
||
|
node: true
|
||
|
},
|
||
|
rules: {
|
||
|
semi: "error"
|
||
|
}
|
||
|
})
|
||
|
];
|
||
|
```
|
||
|
|
||
|
## License
|
||
|
|
||
|
MIT License
|