Back to Formatjs

@formatjs/unplugin

packages/unplugin/README.md

4.5.02.7 KB
Original Source

@formatjs/unplugin

Universal build plugin for FormatJS AST transformations. Supports Vite, Webpack, Rollup, esbuild, and Rspack with one codebase.

Replicates the functionality of babel-plugin-formatjs and @formatjs/ts-transformer using oxc-parser + magic-string for fast, compiler-agnostic builds.

Installation

bash
npm install @formatjs/unplugin --save-dev

Usage

Vite

ts
// vite.config.ts
import {defineConfig} from 'vite'
import formatjs from '@formatjs/unplugin/vite'

export default defineConfig({
  plugins: [
    formatjs({
      idInterpolationPattern: '[sha512:contenthash:base64:6]',
      ast: true,
    }),
  ],
})

Webpack

js
// webpack.config.js
const formatjs = require('@formatjs/unplugin/webpack').default

module.exports = {
  plugins: [
    formatjs({
      idInterpolationPattern: '[sha512:contenthash:base64:6]',
      ast: true,
    }),
  ],
}

Rollup

js
// rollup.config.js
import formatjs from '@formatjs/unplugin/rollup'

export default {
  plugins: [
    formatjs({
      idInterpolationPattern: '[sha512:contenthash:base64:6]',
      ast: true,
    }),
  ],
}

esbuild

js
import esbuild from 'esbuild'
import formatjs from '@formatjs/unplugin/esbuild'

esbuild.build({
  plugins: [
    formatjs({
      idInterpolationPattern: '[sha512:contenthash:base64:6]',
      ast: true,
    }),
  ],
})

Rspack

js
// rspack.config.js
const formatjs = require('@formatjs/unplugin/rspack').default

module.exports = {
  plugins: [
    formatjs({
      idInterpolationPattern: '[sha512:contenthash:base64:6]',
      ast: true,
    }),
  ],
}

Options

OptionTypeDefaultDescription
idInterpolationPatternstring[sha512:contenthash:base64:6]Pattern for generating message IDs
overrideIdFnfunctionCustom function to generate message IDs
removeDefaultMessagebooleanfalseRemove defaultMessage from output
additionalComponentNamesstring[][]Extra JSX component names to process
additionalFunctionNamesstring[][]Extra function names to process
astbooleanfalsePre-parse defaultMessage into AST
preserveWhitespacebooleanfalseKeep original whitespace in messages