{"id":19820,"library":"eslint-plugin-lit","title":"eslint-plugin-lit","description":"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.","status":"active","version":"2.2.1","language":"javascript","source_language":"en","source_url":"https://github.com/43081j/eslint-plugin-lit","tags":["javascript","eslint","eslintplugin","lit-html","lit-element","typescript"],"install":[{"cmd":"npm install eslint-plugin-lit","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-lit","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-lit","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency required to run the plugin","package":"eslint","optional":false}],"imports":[{"note":"ESM-only since v2.0.0; require() will fail. Use dynamic import() if needed.","wrong":"const { configs } = require('eslint-plugin-lit')","symbol":"configs","correct":"import { configs } from 'eslint-plugin-lit'"},{"note":"rules is a named export, not default. Default export exists but is deprecated in favor of named configs.","wrong":"import eslintPluginLit from 'eslint-plugin-lit'","symbol":"rules","correct":"import { rules } from 'eslint-plugin-lit'"},{"note":"Default export is the plugin object but named exports (configs, rules) are preferred.","wrong":"const eslintPluginLit = require('eslint-plugin-lit')","symbol":"default import","correct":"import eslintPluginLit from 'eslint-plugin-lit'"}],"quickstart":{"code":"// eslint.config.js\nimport { configs } from 'eslint-plugin-lit';\n\nexport default [\n  configs['flat/recommended'],\n  {\n    files: ['**/*.js', '**/*.ts'],\n    rules: {\n      'lit/no-legacy-template-syntax': 'error',\n    },\n  },\n];","lang":"typescript","description":"Flat config usage with recommended rules and a custom rule override."},"warnings":[{"fix":"Use import statements or dynamic import() in CommonJS files.","message":"v2.0.0 migrated to ESM-only; require() breaks.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Switch to eslint.config.js with import { configs } from 'eslint-plugin-lit'.","message":"The .eslintrc config format plugin:lit/recommended is deprecated; use flat config (configs['flat/recommended']).","severity":"deprecated","affected_versions":">=2.0.0"},{"fix":"Use import { configs } from 'eslint-plugin-lit' instead of default import.","message":"Default import of the plugin is deprecated; prefer named exports (configs, rules).","severity":"gotcha","affected_versions":">=2.1.1"},{"fix":"Upgrade Node.js to version 18 or higher.","message":"Node < 18 is no longer supported; engine requirement was raised.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Ensure your project uses Lit v2 or later if enabling such rules.","message":"Some rules (e.g., no-legacy-template-syntax) may require Lit v2+; check rule docs.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Change to import statement or use dynamic import: const plugin = await import('eslint-plugin-lit');","cause":"Using require() with eslint-plugin-lit >=2.0.0 which is ESM-only.","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module not supported"},{"fix":"Run npm install eslint-plugin-lit --save-dev","cause":"Plugin not installed or not in node_modules.","error":"ESLint configuration error: Cannot find module 'eslint-plugin-lit'"},{"fix":"Ensure you use import { configs } from 'eslint-plugin-lit' and spread it correctly: export default [configs['flat/recommended'], ...]","cause":"Incorrect import or usage of configs in flat config.","error":"TypeError: configs is not iterable"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}