|
|
- # 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
|