eslint-plugin-lit
raw JSON → 2.2.1 verified Sat Apr 25 auth: no javascript
ESLint plugin for Lit (lit-html / LitElement) providing 23+ lint rules covering attribute names, binding positions, lifecycle super calls, legacy syntax, and more. Stable version 2.2.1, released as needed with minor updates. ESM-only since v2.0.0, requires Node >= 18 and ESLint >= 8. Supports flat config and has recommended shareable config. Differentiated from general ESLint rules by targeting Lit-specific constructs like template literals and LitElement classes, with TypeScript type definitions included.
Common errors
error Error [ERR_REQUIRE_ESM]: require() of ES Module not supported ↓
cause Using require() with eslint-plugin-lit >=2.0.0 which is ESM-only.
fix
Change to import statement or use dynamic import: const plugin = await import('eslint-plugin-lit');
error ESLint configuration error: Cannot find module 'eslint-plugin-lit' ↓
cause Plugin not installed or not in node_modules.
fix
Run npm install eslint-plugin-lit --save-dev
error TypeError: configs is not iterable ↓
cause Incorrect import or usage of configs in flat config.
fix
Ensure you use import { configs } from 'eslint-plugin-lit' and spread it correctly: export default [configs['flat/recommended'], ...]
Warnings
breaking v2.0.0 migrated to ESM-only; require() breaks. ↓
fix Use import statements or dynamic import() in CommonJS files.
deprecated The .eslintrc config format plugin:lit/recommended is deprecated; use flat config (configs['flat/recommended']). ↓
fix Switch to eslint.config.js with import { configs } from 'eslint-plugin-lit'.
gotcha Default import of the plugin is deprecated; prefer named exports (configs, rules). ↓
fix Use import { configs } from 'eslint-plugin-lit' instead of default import.
breaking Node < 18 is no longer supported; engine requirement was raised. ↓
fix Upgrade Node.js to version 18 or higher.
gotcha Some rules (e.g., no-legacy-template-syntax) may require Lit v2+; check rule docs. ↓
fix Ensure your project uses Lit v2 or later if enabling such rules.
Install
npm install eslint-plugin-lit yarn add eslint-plugin-lit pnpm add eslint-plugin-lit Imports
- configs wrong
const { configs } = require('eslint-plugin-lit')correctimport { configs } from 'eslint-plugin-lit' - rules wrong
import eslintPluginLit from 'eslint-plugin-lit'correctimport { rules } from 'eslint-plugin-lit' - default import wrong
const eslintPluginLit = require('eslint-plugin-lit')correctimport eslintPluginLit from 'eslint-plugin-lit'
Quickstart
// eslint.config.js
import { configs } from 'eslint-plugin-lit';
export default [
configs['flat/recommended'],
{
files: ['**/*.js', '**/*.ts'],
rules: {
'lit/no-legacy-template-syntax': 'error',
},
},
];