{"id":20373,"library":"prettier-plugin-imports","title":"prettier-plugin-imports","description":"A Prettier plugin for sorting import declarations by custom regular expression order, preserving side-effect import order, and combining imports from the same source. Based on @trivago/prettier-plugin-sort-imports with additional features like built-in module sorting, type import grouping, and improved comment handling. Version 4.3.3 (latest) supports Vue SFC, Astro files, and import assertions. Requires Prettier >=3 and optionally @vue/compiler-sfc for Vue support. Works with TypeScript, JavaScript, JSX, and Flow. Ships with TypeScript type definitions.","status":"active","version":"4.3.3","language":"javascript","source_language":"en","source_url":"https://github.com/oviirup/prettier-plugin-imports","tags":["javascript","prettier","plugin","sort","organize","import","typescript"],"install":[{"cmd":"npm install prettier-plugin-imports","lang":"bash","label":"npm"},{"cmd":"yarn add prettier-plugin-imports","lang":"bash","label":"yarn"},{"cmd":"pnpm add prettier-plugin-imports","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Required for parsing Vue single-file components when used with Vue projects.","package":"@vue/compiler-sfc","optional":true},{"reason":"Peer dependency; plugin requires Prettier version 3 or higher.","package":"prettier","optional":false}],"imports":[{"note":"TypeScript users should use type-only import for the config type.","wrong":"import { PrettierConfig } from 'prettier-plugin-imports'; (type only import is correct, value import is wrong)","symbol":"PrettierConfig","correct":"import type { PrettierConfig } from 'prettier-plugin-imports';"},{"note":"In JavaScript files, use JSDoc to type the config object as shown.","wrong":"None common","symbol":"PrettierConfig (usage)","correct":"module.exports = /** @type {import('prettier-plugin-imports').PrettierConfig} */ ({...});"},{"note":"The plugin is loaded by name; no explicit import is needed in Prettier config.","wrong":"module.exports = { plugin: 'prettier-plugin-imports', ... }; (incorrect property name)","symbol":"Plugin setup (CommonJS)","correct":"module.exports = { plugins: ['prettier-plugin-imports'], ... };"},{"note":"Use ESM syntax (export default) when working with ESM Prettier config files.","wrong":"module.exports = { plugins: ['prettier-plugin-imports'], ... }; (if config is ESM)","symbol":"Plugin setup (ESM)","correct":"export default { plugins: ['prettier-plugin-imports'], ... };"}],"quickstart":{"code":"// Install: npm install -D prettier prettier-plugin-imports\n// prettier.config.js\n/** @type {import('prettier-plugin-imports').PrettierConfig} */\nmodule.exports = {\n  printWidth: 80,\n  tabWidth: 2,\n  semi: true,\n  singleQuote: true,\n  trailingComma: 'all',\n  importOrder: [\n    '^@core/(.*)$',\n    '',\n    '^@server/(.*)$',\n    '^@ui/(.*)$',\n    '',\n    '^[./]'\n  ],\n  importOrderParsers: ['typescript', 'jsx', 'decorators-legacy'],\n  importOrderTSVersion: '5.0.0'\n};\n\n// Input: 'src/index.ts'\nimport { logger } from '@core/logger';\nimport { createServer } from '@server/node';\nimport { Alert } from '@ui/Alert';\nimport { debounce } from 'lodash';\nimport { Message } from './Message';\nimport 'core-js/stable';\n\n// Run: npx prettier --write src/index.ts\n// Output will sort and group imports per importOrder, preserving side-effect order.","lang":"typescript","description":"Shows installation, Prettier config setup with importOrder and importOrderParsers, and a sample input/output demonstrating import sorting."},"warnings":[{"fix":"Upgrade Prettier to version 3 or later: npm install -D prettier@^3","message":"v4.0 requires Prettier >=3. If you are on Prettier 2.x, upgrading to Prettier 3 is necessary.","severity":"breaking","affected_versions":">=4.0.0 <5"},{"fix":"Remove `importOrderSeparation` option and add empty strings in `importOrder` to create separation.","message":"The option `importOrderSeparation` was removed in v4. Use empty strings in `importOrder` array to separate groups.","severity":"breaking","affected_versions":">=4.0.0 <5"},{"fix":"Remove the option; namespace imports are sorted with their groups.","message":"The option `importOrderGroupNamespaceSpecifiers` was removed in v4.","severity":"breaking","affected_versions":">=4.0.0 <5"},{"fix":"Remove the option; imports are sorted per group as defined in `importOrder`.","message":"Option `importOrderSortIndividualImports` is deprecated and will be removed in a future version.","severity":"deprecated","affected_versions":">=4.3.0 <5"},{"fix":"Side-effect imports (e.g., `import 'module'`) remain in place; only named/default imports are sorted.","message":"The plugin does not sort imports inside side-effect imports; those are preserved in order.","severity":"gotcha","affected_versions":"all"},{"fix":"Add `'<BUILTIN_MODULES>'` to the beginning of your `importOrder` array to move built-ins to top.","message":"By default, 'node:builtin' imports are not sorted to the top unless `<BUILTIN_MODULES>` keyword is included in `importOrder`.","severity":"gotcha","affected_versions":">=4.0.0 <5"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Ensure package is installed: `npm install -D prettier prettier-plugin-imports`","cause":"The plugin is not installed or not correctly resolved.","error":"Cannot find module 'prettier-plugin-imports'"},{"fix":"Remove `importOrderSeparation`; use empty strings in `importOrder` array to separate groups.","cause":"Deprecated option still present in config.","error":"TypeError: prettier-plugin-imports: unknown option `importOrderSeparation`"},{"fix":"Use array format: `importOrderParsers: ['typescript', 'jsx']`","cause":"The option is incorrectly set (e.g., a single string).","error":"Error: prettier-plugin-imports: `importOrderParsers` must be an array of strings"},{"fix":"Add appropriate parser to `importOrderParsers`: e.g., `'vue'` for .vue files.","cause":"The `importOrderParsers` does not include a parser that matches the file type (e.g., Vue files need 'vue').","error":"Module parse error: Unexpected token (1:0) (prettier-plugin-imports)"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}