eslint-config-rem
raw JSON → 4.0.0 verified Sat Apr 25 auth: no javascript
Custom ESLint config for rem, a personal preference shareable config extending eslint-config-xo. Current version 4.0.0 is stable, with infrequent releases. Key features include 2-space indentation, no semicolons, optional Prettier integration via 'rem/prettier', and linting of code blocks in Markdown files. Differentiators: designed to work seamlessly with XO or eslint-config-xo, and includes markdown code block linting via eslint-plugin-markdown. Alternative to standard eslint-config-xo or other shareable configs like Standard.
Common errors
error Error: Failed to load plugin 'rem' declared in 'eslintConfig.extends': Cannot find module 'eslint-config-rem' ↓
cause Package not installed.
fix
Run npm install -D eslint-config-rem
error Error: Cannot find module 'eslint-config-xo' ↓
cause eslint-config-xo not installed, but it is required by this config.
fix
Run npm install -D eslint-config-xo
error Parsing error: The keyword 'import' is reserved ↓
cause ESLint not configured for ES modules.
fix
Ensure the base config 'xo/esnext' is extended, which enables ES2018+ features.
Warnings
gotcha Extending 'rem' without first extending 'xo/esnext' will result in missing base rules. ↓
fix Always include 'xo/esnext' before 'rem' in the extends array.
gotcha The 'rem/prettier' preset requires Prettier and related ESLint plugins to be installed separately. ↓
fix Install prettier, eslint-config-prettier, and eslint-plugin-prettier as devDependencies.
gotcha Using 'extensions' in XO config to lint .md files requires eslint-plugin-markdown to be installed. ↓
fix Add eslint-plugin-markdown as a devDependency.
Install
npm install eslint-config-rem yarn add eslint-config-rem pnpm add eslint-config-rem Imports
- config (default) wrong
extends: ['rem'] without 'xo/esnext'correctextends: ['xo/esnext', 'rem'] - Prettier variant wrong
extends: ['rem/prettier'] without xo basecorrectextends: ['xo/esnext', 'rem/prettier'] - XO usage wrong
xo: { extends: 'rem/prettier' } incorrectlycorrectxo: { extends: 'rem' }
Quickstart
// .eslintrc.json
{
"extends": ["xo/esnext", "rem"]
}