{"id":19532,"library":"eslint-config-ipfs","title":"eslint-config-ipfs","description":"ESLint Shareable Config for IPFS project. Current stable version: 8.0.0. Release cadence: irregular, with major version bumps for breaking changes. Provides a curated set of ESLint rules tailored for JavaScript/TypeScript libraries in the IPFS ecosystem. Differentiators: built on eslint-config-love (replacing deprecated eslint-config-standard-with-typescript), enforces consistent type imports, and integrates seamlessly with AEgir build tool. Supports both .js and .ts files with separate rule sets. Requires Node >=16 and optional TypeScript peer dependency.","status":"active","version":"8.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/ipfs/eslint-config-ipfs","tags":["javascript","eslint","eslintconfig","ipfs"],"install":[{"cmd":"npm install eslint-config-ipfs","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-ipfs","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-ipfs","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency required when linting TypeScript files; rules depend on typescript parser.","package":"typescript","optional":true}],"imports":[{"note":"In ESLint, config names are shortened to the package name without 'eslint-config-' prefix. This works in .eslintrc or package.json eslintConfig.","wrong":"extends: 'eslint-config-ipfs'","symbol":"config (default)","correct":"extends: 'ipfs'"},{"note":"AEgir is the monolithic build tool that includes eslint-config-ipfs. If you use AEgir, you don't need to manually install this package.","symbol":"use with AEgir","correct":"Using AEgir automatically includes this config. No extra setup needed."},{"note":"Install as devDependency. Then create .eslintrc with extends: 'ipfs'. You may also need to install typescript and eslint-plugin-* dependencies manually.","wrong":"npm install eslint-config-ipfs --global","symbol":"manual setup without AEgir","correct":"npm install eslint-config-ipfs"}],"quickstart":{"code":"// 1. Install\nnpm install --save-dev eslint-config-ipfs\n\n// 2. Create .eslintrc.json\n{\n  \"extends\": \"ipfs\"\n}\n\n// 3. Run ESLint\nnpx eslint .","lang":"javascript","description":"Basic setup to use eslint-config-ipfs in any project. Install as devDependency, create .eslintrc with extends key, then lint."},"warnings":[{"fix":"Run eslint --fix to auto-fix new rules. Review any remaining errors manually.","message":"v7.0.0 replaced eslint-config-standard-with-typescript with eslint-config-love. This may cause new rule violations.","severity":"breaking","affected_versions":">=7.0.0"},{"fix":"Run eslint --fix to automatically update imports to match new rule.","message":"v8.0.0 enforces consistent type import style (e.g., import type vs inline type).","severity":"breaking","affected_versions":">=8.0.0"},{"fix":"Update to v7+ which uses eslint-config-love. If on v6, migrate to v7 or adopt eslint-config-love directly.","message":"eslint-config-standard-with-typescript is deprecated and replaced by eslint-config-love.","severity":"deprecated","affected_versions":">=7.0.0"},{"fix":"Use extends: 'ipfs' in your ESLint config.","message":"The package name for extending is 'ipfs', not 'eslint-config-ipfs'. Wrong name causes ESLint to fail loading config.","severity":"gotcha","affected_versions":"all"},{"fix":"Run `npm install typescript` and check for missing plugin warnings. Consider using AEgir to avoid this.","message":"If not using AEgir, you must manually install TypeScript and satisfy all peer dependencies (e.g., eslint-plugin-*).","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run `npm install --save-dev eslint-config-ipfs`.","cause":"Package not installed or not listed in devDependencies.","error":"Error: Cannot find module 'eslint-config-ipfs'"},{"fix":"Ensure your .eslintrc has `\"extends\": \"ipfs\"` (without the 'eslint-config-' prefix).","cause":"The config name is incorrect or missing in extends.","error":"ESLint couldn't find the config 'ipfs'"},{"fix":"Create a tsconfig.json file in your project root. Alternatively, set `parserOptions.project: false` in your ESLint overrides for TS files.","cause":"TypeScript parser requires tsconfig.json, but none is present or configured.","error":"Parsing error: Cannot read file 'tsconfig.json'"},{"fix":"Install/update: `npm install --save-dev @typescript-eslint/eslint-plugin`.","cause":"The required eslint-plugin-@typescript-eslint is missing or outdated.","error":"Definition for rule '@typescript-eslint/consistent-type-imports' was not found"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}