prettier-plugin-one-line-imports
raw JSON → 1.0.3 verified Sat Apr 25 auth: no javascript
Prettier plugin (v1.0.3) that forces TypeScript imports to remain on a single line, overriding Prettier's default multi-line import formatting. Requires Prettier >=3.0.0. It preserves comments inside imports by keeping them multi-line. Installation requires adding the plugin to the Prettier plugins array in config. Ships with TypeScript types. Release cadence: sporadic bug fixes. Key differentiator: solves an age-old Prettier issue (GitHub #5995) by offering a simple override without configuration options.
Common errors
error Error [ERR_REQUIRE_ESM]: require() of ES Module /path/to/prettier/package.json from /path/to/prettier-plugin-one-line-imports/index.js not supported. ↓
cause Plugin version <1.0.3 tried to require() Prettier's package.json, which is ESM-only in Prettier 3.
fix
Upgrade to version 1.0.3 or later: npm install prettier-plugin-one-line-imports@latest
error Cannot find module 'prettier-plugin-one-line-imports' ↓
cause Plugin not installed or not in node_modules, or Prettier cannot resolve it.
fix
Ensure the package is installed as a dev dependency: npm install --save-dev prettier-plugin-one-line-imports
error The plugin "prettier-plugin-one-line-imports" is not recognized by Prettier. ↓
cause Plugin may be registered incorrectly in Prettier config (e.g., missing quotes or wrong spelling).
fix
Add the plugin string exactly as "prettier-plugin-one-line-imports" under the "plugins" array in your .prettierrc, package.json, or other config file.
Warnings
gotcha Plugin only affects import statements with named imports on multiple lines; default imports or side-effect imports are not changed. ↓
fix No action needed. If you want to force single-line default imports, consider other tools.
gotcha Imports containing comments inside the braces are intentionally left multi-line. This may be unexpected if you rely on all imports becoming single-line. ↓
fix Remove any comments inside import braces to enable single-line formatting.
breaking Requires Prettier version >=3.0.0. Using with Prettier 2.x will cause errors or be ignored. ↓
fix Upgrade Prettier to version 3 or later: npm install prettier@latest
deprecated Plugin versions before 1.0.3 had ESM runtime issues; version 1.0.2 had bundling problems with Prettier compatibility. ↓
fix Upgrade to 1.0.3: npm install prettier-plugin-one-line-imports@latest
Install
npm install prettier-plugin-one-line-imports yarn add prettier-plugin-one-line-imports pnpm add prettier-plugin-one-line-imports Imports
- default (plugin registration) wrong
import prettierPluginOneLineImports from 'prettier-plugin-one-line-imports' (no JS import needed)correctAdd "plugins": ["prettier-plugin-one-line-imports"] to Prettier config (e.g., .prettierrc) - N/A (CommonJS require mistake) wrong
const prettierPluginOneLineImports = require('prettier-plugin-one-line-imports')correctN/A (no require needed)
Quickstart
// 1. Install
npm install --save-dev prettier prettier-plugin-one-line-imports
// 2. Create .prettierrc
{
"plugins": ["prettier-plugin-one-line-imports"]
}
// 3. Run Prettier on a file with multi-line imports
// Input:
// import {
// useState,
// useEffect
// } from "react";
// Output:
// import { useState, useEffect } from "react";
// 4. Use with TypeScript
// The plugin only affects import statements; other code is unchanged.
// Imports with comments inside are preserved as multi-line.