{"id":19753,"library":"eslint-plugin-file-progress-2","title":"eslint-plugin-file-progress-2","description":"ESLint plugin that prints real-time file processing progress and detailed summaries during lint runs. Version 5.1.0 (stable, released April 2026) requires Node >=22 and ESLint ^9.0.0 || ^10.2.1. Supports TypeScript with full type declarations. Key differentiators: customizable prefix marks, directory name hiding, prefix hiding, dual ESM/CJS exports, and presets like 'recommended-detailed' for throughput metrics. Active development with frequent releases.","status":"active","version":"5.1.0","language":"javascript","source_language":"en","source_url":"https://github.com/Nick2bad4u/eslint-plugin-file-progress-2","tags":["javascript","eslint","eslintplugin","eslint-plugin","eslint-plugin-file-progress","eslint-plugin-file-progress-2","eslint-progress","progress","typescript"],"install":[{"cmd":"npm install eslint-plugin-file-progress-2","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-file-progress-2","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-file-progress-2","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency for plugin integration","package":"eslint","optional":false},{"reason":"peer dependency for TypeScript support","package":"typescript","optional":true}],"imports":[{"note":"ESM-only since v5; CJS users must use dynamic import or upgrade to Node >=22 with --experimental-require-module.","wrong":"const plugin = require('eslint-plugin-file-progress-2')","symbol":"default","correct":"import plugin from 'eslint-plugin-file-progress-2'"},{"note":"Named export for rules object; CJS require will throw in v5+.","wrong":"const { rules } = require('eslint-plugin-file-progress-2')","symbol":"rules","correct":"import { rules } from 'eslint-plugin-file-progress-2'"},{"note":"Configs are a named export from the main entry point, not a separate path.","wrong":"import configs from 'eslint-plugin-file-progress-2/configs'","symbol":"configs","correct":"import { configs } from 'eslint-plugin-file-progress-2'"},{"note":"TypeScript type export available for configuring plugin settings.","symbol":"PluginConfig","correct":"import type { PluginConfig } from 'eslint-plugin-file-progress-2'"}],"quickstart":{"code":"import plugin from 'eslint-plugin-file-progress-2';\nimport { configs } from 'eslint-plugin-file-progress-2';\n\nexport default [\n  ...configs.recommended,\n  {\n    plugins: {\n      'file-progress-2': plugin\n    },\n    settings: {\n      progress: {\n        prefixMark: '⏳',\n        successMark: '✅',\n        failureMark: '❌',\n        hidePrefix: false,\n        hideDirectoryNames: false,\n        fileNameOnNewLine: false\n      }\n    }\n  }\n];","lang":"typescript","description":"Shows ESLint flat config with plugin import, recommended preset, and custom progress settings."},"warnings":[{"fix":"Use dynamic import() or switch to ESM in your project.","message":"Version 5.0.0 changed plugin entry to ESM-only; CJS require() will fail.","severity":"breaking","affected_versions":">=5.0.0"},{"fix":"Upgrade Node.js to v22 or later.","message":"Node.js >=22.0.0 required as of v5; older versions will not work.","severity":"breaking","affected_versions":">=5.0.0"},{"fix":"Use `settings.progress.prefixMark` instead of overriding the prefix directly.","message":"The `progress.prefixMark` option was added in v3.4.0; previous customization of prefix symbol is no longer supported.","severity":"deprecated","affected_versions":"<3.4.0"},{"fix":"Set prefixMark to a unique character or emoji.","message":"The prefix mark defaults to a checkmark/cross; if you set a custom prefixMark, ensure it does not conflict with success/failure marks.","severity":"gotcha","affected_versions":">=3.4.0"},{"fix":"Use explicit imports from the ESM path (index.js) for bundlers.","message":"Dual export map (main/module) in v3.4.3 may cause resolution issues in some bundlers if both fields are present.","severity":"gotcha","affected_versions":"3.4.3"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Use `import plugin from 'eslint-plugin-file-progress-2'` or set `type: 'module'` in package.json.","cause":"CJS require() used with v5 ESM-only plugin.","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module /path/to/node_modules/eslint-plugin-file-progress-2/dist/index.js from /path/to/project/file.js not supported."},{"fix":"Switch to ESM import syntax: `import { rules } from 'eslint-plugin-file-progress-2'`.","cause":"CJS require() of plugin returns undefined because v5 is ESM-only.","error":"TypeError: Cannot destructure property 'rules' of 'require(...)' as it is undefined."},{"fix":"Use `import { configs } from 'eslint-plugin-file-progress-2'` directly.","cause":"Importing configs from a subpath instead of main entry.","error":"Error: Cannot find module 'eslint-plugin-file-progress-2/configs'"},{"fix":"Upgrade Node to v22 or later.","cause":"Node version below 22.","error":"The engine \"node\" is incompatible with this module. Expected version \">=22.0.0\". Got \"18.0.0\""}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}