{"id":47506,"library":"eslint-plugin-import-next","title":"eslint-plugin-import-next","description":"A drop-in replacement for eslint-plugin-import, offering 100x faster no-cycle detection, AI-optimized fixes, and zero-config migration. Current stable version 2.3.6 (released Dec 2025) supports ESLint 8–10. Key differentiator: performance improvements for large codebases, built-in architectural boundary rules, and ESLint v10 compatibility. Ships TypeScript types and presets for various use cases. Not affiliated with the original eslint-plugin-import; migration is mostly automatic but some rule names differ.","status":"active","version":"2.3.6","language":"javascript","source_language":"en","source_url":"https://github.com/ofri-peretz/eslint","tags":["javascript","eslint","eslint-plugin","eslintplugin","interlace-quality","eslint-plugin-import","eslint-plugin-import-alternative","import","imports","typescript"],"install":[{"cmd":"npm install eslint-plugin-import-next","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-import-next","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-import-next","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency; plugin runs as an ESLint plugin","package":"eslint","optional":false}],"imports":[{"note":"Main plugin object is default export; CommonJS require or ESM import works.","wrong":"require('eslint-plugin-import-next').default","symbol":"plugin","correct":"const plugin = require('eslint-plugin-import-next'); // or import plugin from 'eslint-plugin-import-next'"},{"note":"ESM named export for rules; also accessible via plugin.rules.","wrong":"const rules = require('eslint-plugin-import-next').rules","symbol":"rules","correct":"import { rules } from 'eslint-plugin-import-next'"},{"note":"Named export containing all preset configs (recommended, strict, etc.)","wrong":"const configs = require('eslint-plugin-import-next').configs","symbol":"configs","correct":"import { configs } from 'eslint-plugin-import-next'"}],"quickstart":{"code":"// eslint.config.js (flat config)\nimport importNext from 'eslint-plugin-import-next';\nexport default [\n  {\n    plugins: {\n      'import-next': importNext,\n    },\n    rules: {\n      'import-next/order': ['warn', { groups: ['builtin', 'external', 'internal'] }],\n      'import-next/no-cycle': 'error',\n    },\n  },\n];\n","lang":"javascript","description":"Shows how to set up the plugin with ESLint flat config, enabling 'order' and 'no-cycle' rules."},"warnings":[{"fix":"Update rule names in ESLint config. Use --fix or manual rename.","message":"Rule names differ from eslint-plugin-import; e.g., 'import/order' becomes 'import-next/order', 'import/no-cycle' becomes 'import-next/no-cycle'.","severity":"breaking","affected_versions":"<2.0.0"},{"fix":"Upgrade ESLint to v8 or later.","message":"Drop-in replacement may require ESLint >=8; older ESLint versions (<8) are not supported from v2 onward.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Manually verify fixes; consider setting 'no-cycle' to 'warn' in CI.","message":"Auto-fix for 'no-cycle' is experimental and may produce incorrect results in circular dependency chains with >3 nodes.","severity":"gotcha","affected_versions":"<=2.3.6"},{"fix":"Replace 'import-style' with 'strict' or custom rules.","message":"The 'import-style' preset is deprecated and will be removed in v3; use 'strict' preset instead.","severity":"deprecated","affected_versions":">=2.0.0 <3.0.0"}],"env_vars":null,"search_vec":"'10':42 '100x':17 '2.3.6':35 '2025':38 '8':41 'affili':70 'ai':24 'ai-optim':23 'altern':104 'architectur':53 'automat':81 'boundari':54 'built':51 'built-in':50 'case':68 'codebas':49 'compat':59 'config':30 'current':32 'cycl':21 'dec':37 'detect':22 'differ':86 'differenti':44 'drop':8 'drop-in':7 'eslint':2,13,40,57,75,88,90,97,101 'eslint-plugin':89 'eslint-plugin-import':12,74,96 'eslint-plugin-import-altern':100 'eslint-plugin-import-next':1 'eslintplugin':92 'faster':18 'fix':26 'import':4,15,77,99,103,105,106 'improv':46 'interlac':94 'interlace-qu':93 'javascript':87 'key':43 'larg':48 'migrat':31,78 'most':80 'name':85 'next':5 'no-cycl':19 'offer':16 'optim':25 'origin':73 'perform':45 'plugin':3,14,76,91,98,102 'preset':64 'qualiti':95 'releas':36 'replac':10 'rule':55,84 'ship':60 'stabl':33 'support':39 'type':62 'typescript':61,107 'use':67 'v10':58 'various':66 'version':34 'zero':29 'zero-config':28","created_at":"2026-06-07T16:51:51.910684+00:00","updated_at":"2026-06-07T16:51:51.910684+00:00","problems":[{"fix":"Run: npm install eslint-plugin-import-next --save-dev","cause":"Package not installed or missing from node_modules","error":"Error: Cannot find module 'eslint-plugin-import-next'"},{"fix":"Check documentation for correct options; use object literal with groups array.","cause":"Rule options do not match expected schema","error":"Configuration for rule 'import-next/order' is invalid: invalid schema"},{"fix":"Ensure the rule is added to rules object after plugin is loaded.","cause":"Rule not defined in config but referenced","error":"ESLint configuration error: Rule 'import-next/no-cycle' is not configured"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/ofri-peretz/eslint/tree/main/packages/eslint-plugin-import-next#readme","github":"https://github.com/ofri-peretz/eslint","docs":null,"changelog":null,"pypi":null,"npm":"eslint-plugin-import-next","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}