eslint-config-plus-prettier

raw JSON →
4.2.11 verified Fri May 01 auth: no javascript

ESLint shareable config that bundles ESLint, Prettier, and npm-package-json-lint into a single dependency. Current stable version 4.2.11 includes flat config support for ESLint v9+, TypeScript parsing via @typescript-eslint, import sorting with simple-import-sort, unused imports removal, and separate Prettier/npm-package-json-lint configs. Differentiates from alternatives like eslint-config-prettier by also providing opinionated lint rules (double quotes, semicolons, trailing commas) and optional strict TypeScript TSConfig. Offers two package lint profiles: one for libraries (requiring version range) and one for applications (allowing fixed versions).

error Error: Failed to load plugin 'unused-imports' declared in 'eslint-config-plus-prettier': Cannot find module 'eslint-plugin-unused-imports'
cause Missing peer dependency for the unused-imports plugin.
fix
Install eslint-plugin-unused-imports: npm install --save-dev eslint-plugin-unused-imports
error Error: .eslintrc.cjs: Environment key "es2022" is unknown
cause Using legacy .eslintrc format with v4 which requires flat config.
fix
Switch to eslint.config.js (flat config) and upgrade to ESLint v9.
error TypeError: config is not a function or tuple
cause Incorrect import or export of config in eslint.config.js.
fix
Ensure eslint.config.js contains: import config from 'eslint-config-plus-prettier'; export default [config];
error Parsing error: Cannot find module 'typescript'
cause TypeScript is not installed as a devDependency.
fix
Install TypeScript: npm install --save-dev typescript
breaking v4 requires ESLint v9+ with flat config; does not support .eslintrc files.
fix Upgrade to ESLint v9 and use eslint.config.js (flat config).
breaking v4 is ESM-only; CommonJS projects must rename config file to eslint.config.cjs or use dynamic import.
fix Rename eslint.config.js to eslint.config.cjs and use module.exports or require().
deprecated v3 uses legacy .eslintrc format; v4 uses flat config. v3 may stop receiving updates.
fix Update to v4 and migrate to flat config.
gotcha Prettier config reference in package.json is a string path, not a require/import.
fix Use "prettier": "eslint-config-plus-prettier/prettier" in package.json.
gotcha npm-package-json-lint config must be in .npmpackagejsonlintrc.json, not via import.
fix Create a .npmpackagejsonlintrc.json file with extends field.
gotcha TypeScript support requires a separate tsconfig.json that extends the provided config; ESLint config already handles TS parsing.
fix Create tsconfig.json with extends: 'eslint-config-plus-prettier/tsconfig'.
npm install eslint-config-plus-prettier
yarn add eslint-config-plus-prettier
pnpm add eslint-config-plus-prettier

Install the package, set up ESLint flat config, add Prettier reference in package.json, and add scripts for linting and formatting.

# Install as devDependency
npm install --save-dev --save-exact eslint-config-plus-prettier

# package.json
{
  "type": "module",
  "scripts": {
    "format": "prettier --write .",
    "format:check": "prettier --check .",
    "lint": "eslint --fix",
    "lint:check": "eslint",
    "package:lint": "npx npm-package-json-lint ."
  }
}

# eslint.config.js
import config from "eslint-config-plus-prettier";
export default [config];

# package.json (add prettier config)
{
  "prettier": "eslint-config-plus-prettier/prettier"
}