Registry / web-framework / prettier-plugin-imports

prettier-plugin-imports

JSON →
library4.3.3jsnpmunverified

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.

npm install prettier-plugin-imports
INSTALL
IMPORT
SIG · PRETTIER-PLUGIN-IM
P
prettier-plugin-imports
web-frameworkjavascriptv4.3.3
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

PrettierConfig
import type { PrettierConfig } from 'prettier-plugin-imports';
import { PrettierConfig } from 'prettier-plugin-imports'; (type only import is correct, value import is wrong)
TypeScript users should use type-only import for the config type.
PrettierConfig (usage)
module.exports = /** @type {import('prettier-plugin-imports').PrettierConfig} */ ({...});
None common
In JavaScript files, use JSDoc to type the config object as shown.
Plugin setup (CommonJS)
module.exports = { plugins: ['prettier-plugin-imports'], ... };
module.exports = { plugin: 'prettier-plugin-imports', ... }; (incorrect property name)
The plugin is loaded by name; no explicit import is needed in Prettier config.
Plugin setup (ESM)
export default { plugins: ['prettier-plugin-imports'], ... };
module.exports = { plugins: ['prettier-plugin-imports'], ... }; (if config is ESM)
Use ESM syntax (export default) when working with ESM Prettier config files.

Shows installation, Prettier config setup with importOrder and importOrderParsers, and a sample input/output demonstrating import sorting.

// Install: npm install -D prettier prettier-plugin-imports // prettier.config.js /** @type {import('prettier-plugin-imports').PrettierConfig} */ module.exports = { printWidth: 80, tabWidth: 2, semi: true, singleQuote: true, trailingComma: 'all', importOrder: [ '^@core/(.*)$', '', '^@server/(.*)$', '^@ui/(.*)$', '', '^[./]' ], importOrderParsers: ['typescript', 'jsx', 'decorators-legacy'], importOrderTSVersion: '5.0.0' }; // Input: 'src/index.ts' import { logger } from '@core/logger'; import { createServer } from '@server/node'; import { Alert } from '@ui/Alert'; import { debounce } from 'lodash'; import { Message } from './Message'; import 'core-js/stable'; // Run: npx prettier --write src/index.ts // Output will sort and group imports per importOrder, preserving side-effect order.
Debug
Known issues
breakingv4.0 requires Prettier >=3. If you are on Prettier 2.x, upgrading to Prettier 3 is necessary.
fix
Upgrade Prettier to version 3 or later: npm install -D prettier@^3
affects: >=4.0.0 <5
breakingThe option `importOrderSeparation` was removed in v4. Use empty strings in `importOrder` array to separate groups.
fix
Remove `importOrderSeparation` option and add empty strings in `importOrder` to create separation.
affects: >=4.0.0 <5
breakingThe option `importOrderGroupNamespaceSpecifiers` was removed in v4.
fix
Remove the option; namespace imports are sorted with their groups.
affects: >=4.0.0 <5
deprecatedOption `importOrderSortIndividualImports` is deprecated and will be removed in a future version.
fix
Remove the option; imports are sorted per group as defined in `importOrder`.
affects: >=4.3.0 <5
gotchaThe plugin does not sort imports inside side-effect imports; those are preserved in order.
fix
Side-effect imports (e.g., `import 'module'`) remain in place; only named/default imports are sorted.
affects: all
gotchaBy default, 'node:builtin' imports are not sorted to the top unless `<BUILTIN_MODULES>` keyword is included in `importOrder`.
fix
Add `'<BUILTIN_MODULES>'` to the beginning of your `importOrder` array to move built-ins to top.
affects: >=4.0.0 <5
Errors
Common errors & fixes
Cannot find module 'prettier-plugin-imports'
The plugin is not installed or not correctly resolved.
fix
Ensure package is installed: `npm install -D prettier prettier-plugin-imports`
TypeError: prettier-plugin-imports: unknown option `importOrderSeparation`
Deprecated option still present in config.
fix
Remove `importOrderSeparation`; use empty strings in `importOrder` array to separate groups.
Error: prettier-plugin-imports: `importOrderParsers` must be an array of strings
The option is incorrectly set (e.g., a single string).
fix
Use array format: `importOrderParsers: ['typescript', 'jsx']`
Module parse error: Unexpected token (1:0) (prettier-plugin-imports)
The `importOrderParsers` does not include a parser that matches the file type (e.g., Vue files need 'vue').
fix
Add appropriate parser to `importOrderParsers`: e.g., `'vue'` for .vue files.
Upgrade
Version history
4.3.3latest on npm
Audit
Dependencies
@vue/compiler-sfcoptionalRequired for parsing Vue single-file components when used with Vue projects.
prettierrequiredPeer dependency; plugin requires Prettier version 3 or higher.
Agent activity
6 hits · last 30 days
node
6
Resources
prettier-plugin-imports — npm install prettier-plugin-imports · libregistry