116 lines
2.9 KiB
Markdown
116 lines
2.9 KiB
Markdown
# 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
|