使用您最喜欢的AI助手总结文档,并引用此页面和AI提供商
版本历史
- "初始化文档"v9.0.02026/6/25
此页面的内容已使用 AI 翻译。
查看英文原文的最新版本如果您有改善此文档的想法,请随时通过在GitHub上提交拉取请求来贡献。
文档的 GitHub 链接复制文档 Markdown 到剪贴板
intlayerMinify
intlayerMinify 是一个 Vite 插件,用于在生产环境构建(production build)期间压缩编译后的字典 JSON 文件。它会清除所有不必要的空格,并在与 intlayerPrune 结合时,可选地将内容字段名称重命名为简短的字母别名(a, b, c, …),以进一步减小包大小。
当您使用 intlayer() 时,该插件已自动包含并配置。只有在您自己构建插件栈时,才需要手动注册它。
用法
复制代码到剪贴板
激活条件
intlayerMinify 仅在以下三个条件均满足时处于活动状态:
- Vite 命令为
build(不是serve/ dev 开发服务)。 build.optimize为true(或undefined,构建时默认为true)。- 您的 Intlayer 配置中
build.minify为true。
当 editor.enabled 为 true 时,插件仍会运行,但会跳过字段重命名:重命名会重写解释器遍历的内容键,这会导致可视化编辑器收到的 keyPath 不再与其正在编辑的未合并字典相匹配。空白压缩和顶层元数据清除仍保持启用。
哪些内容会被压缩
该插件针对两个字典位置(解析自 intlayer.system):
dictionariesDir— 静态全语言字典(例如.intlayer/dictionaries/*.json)dynamicDictionariesDir— 每种语言的动态字典
获取模式字典(fetchDictionariesDir)从不会被压缩,因为它们在运行时使用其原始字段名称从远程 API 提供服务。重命名字段将导致服务器响应与客户端属性访问之间出现不匹配。
字段名混淆(属性压缩)
当 intlayerPrune 分析了代码库并填充了 pruneContext.dictionaryKeyToFieldRenameMap 时,intlayerMinify 也会将内容字段名称重命名为简短别名。例如:
复制代码到剪贴板
对应的源文件属性访问已由 intlayerOptimize 内的 Babel 处理重命名,因此运行时行为保持不变。
内部 Intlayer 字段(nodeType, translation 等)绝不会被重命名。
边缘情况字典
在 pruneContext.dictionariesWithEdgeCases 中被标记的字典(在修剪(prune)阶段检测到结构异常)将被完全跳过 — 既不压缩也不混淆 — 以避免发布损坏的数据。
限饰组(集合 / 变体 / 元记录)
对于具有 qualifierTypes 数组的字典(集合、变体和元记录),插件会逐字保留 qualifierTypes 数组和 meta 侧图。仅混淆 content 条目的字段名称。用于运行时选择器匹配的复合键绝不会被修改。
