编译器
基于 Rust 的 gt-next 的 SWC 插件。
编译器
gt-next 包含一个基于 Rust 的 SWC 插件,可在构建阶段进行分析,捕捉常见的翻译错误并优化性能。
功能特性
动态内容检测
检测翻译组件中未包裹的动态内容:
// ❌ 无效 - 动态内容未包装
<T>Hello {userName}</T>
// ✅ 有效 - 动态内容已用变量组件包装  
<T>Hello <Var>{userName}</Var></T>函数调用验证
检测传递给翻译函数的非字面量参数:
const t = useGT();
// ❌ 无效 - 模板字面量和字符串连接
t(`Hello ${name}`)
t("Hello " + name)
// ✅ 有效 - 带变量替换的字符串字面量
t("你好,{name}!", { name })编译期哈希生成
预先计算翻译哈希,以提升运行时性能:
// 输入
<T>Hello world</T>
// 输出(启用时)
<T _hash="a1b2c3d4">Hello world</T>配置
在你的 next.config.js 中配置 SWC 插件:
import { withGTConfig } from 'gt-next/config';
export default withGTConfig(nextConfig, {
  locales: ['en', 'es'],
  swcPluginOptions: {
    logLevel: 'silent',     // 控制警告输出
    compileTimeHash: false, // 启用哈希生成
  },
});选项
- 
logLevel: 控制日志/警告输出级别- 'silent'- 不输出警告(生产环境默认)
- 'error'- 作为构建错误显示
- 'warn'- 作为警告显示(开发环境默认)
- 'info'- 显示信息级日志
- 'debug'- 显示所有调试信息
 
- 
compileTimeHash: 启用编译时哈希生成- false- 禁用(默认)
- true- 在构建时生成哈希以提升性能
 
限制
SWC 插件按文件逐一处理,无法检测到经由重新导出的组件中的违规情况:
// 文件 A: export { T as Translate } from 'gt-next'
// 文件 B: import { Translate } from './A'
<Translate>你好 {name}</Translate> // 无法被检测到这份指南怎么样?

