You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Lingui Macro未导出Trans组件问题(不使用@lingui/react的Trans)

解决Lingui宏Trans导出错误的方案(不使用@lingui/react的Trans)

错误原因

@lingui/macro中的Trans是编译时宏,并非运行时可直接导入的组件。如果未配置对应的编译插件(如Vite/Babel插件),编译工具会直接尝试导入这个不存在的导出,从而触发报错。

解决方案

1. 安装Lingui Vite编译插件

由于你的项目基于Vite构建,需安装@lingui/vite-plugin:

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

2. 配置Vite插件

在vite.config.ts中添加Lingui插件配置:

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import { lingui } from '@lingui/vite-plugin';

export default defineConfig({
  plugins: [
    react(),
    lingui() // 加入该插件
  ]
});

3. 确保宏的正确使用

你的Test组件代码写法本身没问题,但需保证编译流程能处理宏语法。编译完成后,@lingui/macro的Trans会被替换为底层国际化调用逻辑,无需依赖@lingui/react的Trans组件。

4. 重新提取并编译语言消息

运行Lingui的提取与编译命令,确保语言消息被正确收集处理:

npm run lingui extract
npm run lingui compile

验证

重启Vite开发服务器,此时Trans宏会被正确编译,报错应消失。

额外注意事项

  • 确保Lingui版本为v4及以上(v4起使用@lingui/vite-plugin,v3依赖Babel插件)
  • 不要将@lingui/macro的导出作为运行时组件直接引用,宏仅在编译阶段生效

内容的提问来源于stack exchange,提问作者Ahmed Elbessfy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 17:42:17