Skip to main content

SWC Plugin

SWC is an extensible Rust-based platform for the next generation of fast developer tools.

If you're using SWC in your project, you can opt for the @lingui/swc-plugin. This plugin, designed for SWC, is a Rust version of LinguiJS Macro.

npm-version npm-downloads CI GitHub contributors

SWC Compatibility

SWC Plugin support is still experimental. Semver backwards compatibility between different @swc/core versions is not guaranteed.

Therefore, you need to select an appropriate version of the @lingui/swc-plugin to match compatible @swc/core version.

For more information on compatibility, please refer to the Compatibility section.

Installation

Install @lingui/swc-plugin as a development dependency:

npm install --save-dev @lingui/swc-plugin

Usage

Add the following configuration to your .swcrc file:

.swcrc
{
"$schema": "https://json.schemastore.org/swcrc",
"jsc": {
"experimental": {
"plugins": [
[
"@lingui/swc-plugin",
{
// Optional
// Unlike the JS version this option must be passed as object only.
// Docs https://lingui.dev/ref/conf#runtimeconfigmodule
// "runtimeModules": {
// "i18n": ["@lingui/core", "i18n"],
// "trans": ["@lingui/react", "Trans"]
// }
}
]
]
}
}
}

If you use Next.js, add the following to your next.config.js:

next.config.js
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
experimental: {
swcPlugins: [
[
"@lingui/swc-plugin",
{
// the same options as in .swcrc
},
],
],
},
};

module.exports = nextConfig;

Examples