esbuild-plugin-lingui-macro

raw JSON →
1.0.2 verified Fri May 01 auth: no javascript

An esbuild plugin that automatically adds Babel with @lingui/babel-plugin-lingui-macro to compile Lingui macros (e.g., t, plural, select) during esbuild builds. Version 1.0.2 requires peer dependencies @lingui/cli and @lingui/conf (v5 or v6) and esbuild. Only processes files that import Lingui macros, minimizing overhead. Lightweight alternative to integrating Babel/SWC manually when no other transpiler is in the pipeline. Ships TypeScript types.

error Error: Cannot find module '@lingui/cli'
cause Missing required peer dependency @lingui/cli.
fix
npm install @lingui/cli --save-dev
error TypeError: pluginLinguiMacro is not a function
cause Incorrect import: used default import instead of named import.
fix
Correct import: import { pluginLinguiMacro } from 'esbuild-plugin-lingui-macro'
error Error: [esbuild] [plugin esbuild-plugin-lingui-macro] Babel error: ...
cause A Babel error occurred during macro compilation, likely due to misconfigured Lingui or syntax error.
fix
Check your Lingui configuration and source files for macro usage. Ensure @lingui/cli is set up correctly.
gotcha Plugin only processes files where a Lingui macro import (e.g., t, plural) is found. It does not run Babel on all files.
fix Ensure your source files import from @lingui/macro.
deprecated If you already have Babel or SWC in your esbuild pipeline, prefer using @lingui/babel-plugin-lingui-macro or @lingui/swc-plugin directly instead of this plugin.
fix Use the respective plugin directly for better performance and flexibility.
breaking Requires peer dependencies @lingui/cli and @lingui/conf version 5 or 6. Incompatible with older Lingui versions.
fix Upgrade Lingui packages to v5 or v6.
gotcha The plugin adds Babel transformation which can slow down builds. Consider caching if build times are critical.
fix Implement esbuild caching or use SWC for faster transformation.
npm install esbuild-plugin-lingui-macro
yarn add esbuild-plugin-lingui-macro
pnpm add esbuild-plugin-lingui-macro

Minimal setup to use the plugin with esbuild, compiling Lingui macros in entry point.

import { pluginLinguiMacro } from 'esbuild-plugin-lingui-macro';
import esbuild from 'esbuild';

await esbuild.build({
  entryPoints: ['src/index.ts'],
  bundle: true,
  outfile: 'dist/bundle.js',
  plugins: [pluginLinguiMacro()],
});