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.
Common errors
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.
Warnings
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.
Install
npm install esbuild-plugin-lingui-macro yarn add esbuild-plugin-lingui-macro pnpm add esbuild-plugin-lingui-macro Imports
- pluginLinguiMacro wrong
import pluginLinguiMacro from 'esbuild-plugin-lingui-macro'correctimport { pluginLinguiMacro } from 'esbuild-plugin-lingui-macro' - pluginLinguiMacro wrong
const pluginLinguiMacro = require('esbuild-plugin-lingui-macro')correctconst { pluginLinguiMacro } = require('esbuild-plugin-lingui-macro') - pluginLinguiMacro wrong
import { pluginLinguiMacro } from 'esbuild-plugin-lingui-macro'correctimport type { pluginLinguiMacro } from 'esbuild-plugin-lingui-macro'
Quickstart
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()],
});