eslint-config-plus-prettier
v4.2.4
Published
Standard config for ESLint, Prettier and Package Lint. Also includes an optional TSConfig.
Downloads
113
Readme
eslint-config-plus-prettier
Standard config for ESLint, Prettier and Package Lint. Also includes an optional TSConfig.
Quick Setup
Install the package:
npm install --save-dev --save-exact eslint-config-plus-prettierAdd the following scripts to your package.json:
{
"scripts": {
"format": "prettier --write .",
"format:check": "prettier --check .",
"lint": "eslint --fix",
"lint:check": "eslint",
"package:lint": "npx npm-package-json-lint ."
}
}Configuration
Add a eslint.config.js file with the following:
import config from "eslint-config-plus-prettier";
export default [config];To exclude specific folders or files from linting, add an ignores configuration:
import config from "eslint-config-plus-prettier";
export default [
config,
{
ignores: ["_site/**", "build/**", "*.min.js"],
},
];Note:
dist/**andnode_modules/**are ignored by default.
Prettier
Add prettier configuration to your package.json:
{
"prettier": "eslint-config-plus-prettier/prettier"
}Optional: Create a .prettierignore file to exclude generated files:
package-lock.json
CHANGELOG.md
distPackage Lint
Create a .npmpackagejsonlintrc.json file in your project root:
For npm modules/libraries:
{
"extends": "eslint-config-plus-prettier/packagelint"
}For applications/servers (with fixed dependencies):
{
"extends": "eslint-config-plus-prettier/packagelint/server"
}TypeScript (Optional)
Create a tsconfig.json file for TypeScript projects:
{
"extends": "eslint-config-plus-prettier/tsconfig",
"include": ["src/**/*"],
"compilerOptions": {
"outDir": "dist"
}
}Usage
Run the following commands to lint and format your code:
# Lint and auto-fix JavaScript/TypeScript files
npm run lint
# Format all files with Prettier
npm run format
# Validate package.json structure
npm run package:lint
# Check formatting without making changes
npm run format:check
# Check linting without auto-fixing
npm run lint:checkWhat's Included
ESLint Rules
- TypeScript support with
@typescript-eslintparser and plugin - Import sorting with
simple-import-sortplugin - Unused import removal with
unused-importsplugin - Consistent quotes (double quotes)
- Prefer const for immutable variables
- Unused variable warnings (with underscore prefix exception)
Prettier Configuration
- Double quotes for strings
- Semicolons enabled
- Trailing commas in ES5-compatible locations
- 120 character line width
- 2 spaces for indentation
Package Lint Rules
- Validates
package.jsonstructure and dependencies - Different rulesets for modules vs. applications
- Ensures consistent package metadata
Troubleshooting
ESLint Issues
- Make sure you're using ESLint v9+ for flat config support
- Check that your
eslint.config.jsis in the project root - Verify all files you want to lint match the file patterns
Prettier Conflicts
- This config uses
eslint-config-prettierto disable conflicting ESLint rules - If you see formatting conflicts, check your
.prettierignorefile
Import Errors
- Ensure you're using ES modules (
"type": "module"in package.json) - For CommonJS projects, use
.cjsextension for config files
Contributing
Found an issue or have a suggestion? Please open an issue or submit a pull request.
