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
 |