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
 |