{"id":25282,"library":"esbuild-fix-imports-plugin","title":"esbuild-fix-imports-plugin","description":"An ESBuild plugin (v1.0.23) that fixes import paths in bundleless ESBuild/tsup builds by resolving TypeScript path aliases, replacing directory imports with explicit index file paths, and appending correct file extensions. Released actively, it combines three sub-plugins (fixAliasPlugin, fixFolderImportsPlugin, fixExtensionsPlugin) and an optional writeFilePlugin for memory-based builds. Key differentiator: solves common issues when bundling is disabled and output files need correct relative imports for Node.js or browser consumption.","status":"active","version":"1.0.23","language":"javascript","source_language":"en","source_url":"https://github.com/aymericzip/esbuild-fix-imports-plugin","tags":["javascript","esbuild","plugin","imports","fix","alias","extensions","folder-imports","typescript"],"install":[{"cmd":"npm install esbuild-fix-imports-plugin","lang":"bash","label":"npm"},{"cmd":"yarn add esbuild-fix-imports-plugin","lang":"bash","label":"yarn"},{"cmd":"pnpm add esbuild-fix-imports-plugin","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency; the plugin is designed to work as an ESBuild plugin","package":"esbuild","optional":false},{"reason":"used in the recommended esbuild.mjs setup to collect entry points","package":"fast-glob","optional":true}],"imports":[{"note":"Named export, not default. Works with ESM and CJS via separate entry points.","wrong":"import fixImportsPlugin from 'esbuild-fix-imports-plugin'","symbol":"fixImportsPlugin","correct":"import { fixImportsPlugin } from 'esbuild-fix-imports-plugin'"},{"note":"Named export, available as sub-export. CommonJS require may fail if package is ESM-only in future versions.","wrong":"const { fixAliasPlugin } = require('esbuild-fix-imports-plugin')","symbol":"fixAliasPlugin","correct":"import { fixAliasPlugin } from 'esbuild-fix-imports-plugin'"},{"note":"Separate file, not exported from main entry; used in the recommended esbuild.mjs pattern.","wrong":"import { writeFilePlugin } from 'esbuild-fix-imports-plugin'","symbol":"writeFilePlugin","correct":"import { writeFilePlugin } from 'esbuild-fix-imports-plugin/dist/esm/writeFilePlugin.mjs'"}],"quickstart":{"code":"import { build } from 'esbuild';\nimport { fixImportsPlugin, writeFilePlugin } from 'esbuild-fix-imports-plugin';\nimport fg from 'fast-glob';\n\nasync function buildAll() {\n  const entryPoints = await fg(['src/**/*'], { onlyFiles: true });\n  await build({\n    entryPoints,\n    bundle: false,\n    write: false,\n    outdir: 'dist',\n    platform: 'node',\n    format: 'esm',\n    plugins: [\n      fixImportsPlugin(),\n      writeFilePlugin(),\n    ],\n    tsconfig: './tsconfig.json',\n  });\n}\nbuildAll();","lang":"typescript","description":"Demonstrates using fixImportsPlugin with writeFilePlugin in an ESBuild script that fixes import paths in bundleless builds."},"warnings":[{"fix":"Migrate to ESBuild directly with the plugin setup shown in the README.","message":"tsup is discouraged; the README states 'Consider using ESBuild directly as TSUP is deprecated.'","severity":"deprecated","affected_versions":"*"},{"fix":"Set write: false in ESBuild options and use writeFilePlugin() to output files.","message":"write: false is required when using writeFilePlugin; setting write: true will cause build failures as the plugin expects to write files in memory.","severity":"gotcha","affected_versions":"*"},{"fix":"Ensure tsconfig.json contains a paths mapping and the tsconfig option is properly passed to ESBuild.","message":"The plugin expects tsconfig.json with paths defined; missing or incorrect tsconfig can cause alias resolution to fail silently.","severity":"gotcha","affected_versions":"*"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Set write: false in ESBuild build options.","cause":"Using writeFilePlugin with write: true (default) causes conflict because the plugin writes files manually.","error":"Error: writeFilePlugin requires write: false in esbuild options"},{"fix":"Run npm install esbuild-fix-imports-plugin and use named import: import { fixImportsPlugin } from 'esbuild-fix-imports-plugin'.","cause":"Package not installed or incorrect import path (e.g., using default import instead of named).","error":"Cannot find module 'esbuild-fix-imports-plugin'"},{"fix":"Use import { fixImportsPlugin } from 'esbuild-fix-imports-plugin' (curly braces).","cause":"Importing the default export (undefined) instead of the named export.","error":"TypeError: fixImportsPlugin is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}