Magic Lint
raw JSON →Magic Lint is an all-in-one configless lint tool that integrates ESLint, Stylelint, Prettier, lint-staged, and commitlint to streamline project initialization and code quality enforcement. Current stable version is 2.6.1, released with weekly or monthly cadence. It supports JavaScript, TypeScript, Vue, and React out of the box with zero configuration for linting and formatting, but requires users to provide their own config files (.eslintrc, .stylelintrc, .prettierrc, commitlint.config.js). Its key differentiator is the 'harmony' mode that resolves Prettier/ESLint conflicts by running Prettier first then ESLint. The package also provides CLI commands for staged files, commit message checking, and full directory linting. Unlike alternatives like eslint-config-prettier or prettier-eslint, magic-lint bundles everything together with a single CLI and supports commit hooks via Husky.
Common errors
error Error: Failed to load config "magic-lint" to extend from. ↓
error npx: command not found: magic-lint ↓
error Warning: Unknown option: --harmony. Use --help for available options. ↓
error TypeError: Cannot read properties of undefined (reading 'config') ↓
Warnings
breaking Husky v4 hooks configuration in package.json is not supported in v2 of magic-lint. Must use shell scripts in .husky directory. ↓
gotcha magic-lint requires configuration files (.eslintrc, .stylelintrc, .prettierrc, commitlint.config.js). It does not provide sensible defaults. ↓
deprecated The --harmony flag is deprecated in v2.6.1. Harmony mode is enabled by default. ↓
gotcha "npx husky add" command may fail on Windows. Use "node node_modules/.bin/husky add" instead. ↓
breaking Peer dependency @typescript-eslint/eslint-plugin requires version >=5.55.0, causing version conflicts in older projects. ↓
Install
npm install magic-lint yarn add magic-lint pnpm add magic-lint Imports
- magic-lint CLI
npx magic-lint --staged --eslint --stylelint --prettier --fix - Husky hook integration wrong
magic-lint --staged --eslint --stylelint --prettier --fixcorrectnpx --no-install magic-lint --staged --eslint --stylelint --prettier --fix - Commit message linting wrong
magic-lint --commit --commit.config ./commitlint.config.js --commit.edit $1correctnpx --no-install magic-lint --commit --commit.config ./commitlint.config.js --commit.edit $1
Quickstart
# Install as dev dependency
npm install magic-lint --save-dev
# Set up Husky and add pre-commit hook for staged files
npx husky-init && npm install
npx husky add .husky/pre-commit 'npx --no-install magic-lint --staged --eslint --stylelint --prettier --fix'
# Add commit-msg hook for commit message linting
npx husky add .husky/commit-msg 'npx --no-install magic-lint --commit --commit.config "$(dirname "$0")/../commitlint.config.js" --commit.edit "$1"'
# Now lint all files in src directory
npx magic-lint --prettier --eslint --stylelint src/