{"id":19606,"library":"eslint-config-twilio","title":"eslint-config-twilio","description":"Twilio's official ESLint shareable config enforcing JavaScript style guidelines. Current stable version 2.0.0 requires ESLint ^8 and drops support for ESLint 5, 6, and 7. Integrates with prettier, eslint-plugin-import, eslint-plugin-no-only-tests, and eslint-plugin-sonarjs. Designed for Twilio's codebase but usable by any JavaScript project. Released under twilio-style monorepo with slow cadence; no known further updates.","status":"active","version":"2.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/twilio-labs/twilio-style","tags":["javascript","config","eslint","eslintconfig","styleguide","twilio"],"install":[{"cmd":"npm install eslint-config-twilio","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-twilio","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-twilio","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Use the shorthand 'twilio' in extends, not the full package name.","wrong":"{\n  \"extends\": [\"eslint-config-twilio\"]\n}","symbol":"extends config","correct":"{\n  \"extends\": [\"twilio\"]\n}"},{"note":"The rules/prettier file is CommonJS; ESM import may fail in some environments.","wrong":"import baseConfig from 'eslint-config-twilio/rules/prettier';","symbol":"prettier config import (CommonJS)","correct":"const baseConfig = require('./node_modules/eslint-config-twilio/rules/prettier');"},{"note":"Use createRequire to load CommonJS module from ESM.","wrong":"import baseConfig from 'eslint-config-twilio/rules/prettier';","symbol":"prettier config import (ESM)","correct":"import { createRequire } from 'module'; const require = createRequire(import.meta.url); const baseConfig = require('./node_modules/eslint-config-twilio/rules/prettier');"}],"quickstart":{"code":"// Install\nnpm install eslint@^8 eslint-config-twilio --save-dev\n\n// .eslintrc.json\n{\n  \"extends\": [\"twilio\"]\n}\n\n// package.json scripts\n{\n  \"scripts\": {\n    \"lint\": \"eslint --ext js src/\",\n    \"lint:fix\": \"npm run lint -- --fix\"\n  }\n}\n\n// Example usage\nnpx eslint src/\n","lang":"javascript","description":"Installs eslint@^8 and eslint-config-twilio, configures ESLint with the twilio preset, and sets up lint and lint:fix scripts."},"warnings":[{"fix":"Upgrade ESLint to version 8 or later.","message":"Dropped support for ESLint 5, 6, and 7. Only ESLint ^8 is supported.","severity":"breaking","affected_versions":">=1.0.0 <2.0.0"},{"fix":"Run 'npm install eslint@^8 --save-dev' if not already installed, or upgrade npm to >=7.","message":"You must install peer dependency eslint@^8 manually; npm<7 does not auto-install peer deps.","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Follow the Prettier section in README to customize: add override rule 'prettier/prettier': ['warn', {}, { 'usePrettierrc': true }]","message":"The prettier rules are not applied unless you extend 'twilio'. Overriding prettier/prettier rules requires additional configuration.","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":"Run 'npm install eslint eslint-config-twilio --save-dev'.","cause":"Package not installed or not in node_modules.","error":"Error: Cannot find module 'eslint-config-twilio'"},{"fix":"Install missing peer dependencies: 'npm install eslint-plugin-import --save-dev'.","cause":"Peer dependencies (including eslint-plugin-import) are not installed automatically.","error":"Error: Failed to load plugin 'import' declared in 'BaseConfig': Cannot find module 'eslint-plugin-import'"},{"fix":"Ensure .eslintrc.json is valid JSON with double-quoted strings.","cause":"Using an invalid ESLint config file format (e.g., missing JSON quotes or using JavaScript object).","error":"Error: ESLint configuration in .eslintrc.json is invalid: Unexpected top-level property \"extends\""}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}