如何将I18n提取时的重复消息id警告设置为错误类型
特定警告转错误的实现方法
以下是针对i18n提取时重复ID类警告转错误的两种通用方案:
方案1:工具原生配置适配
主流i18n提取工具基本都内置了相关配置,无需额外开发:
i18next-scanner
在项目根目录的i18next-scanner.config.js中添加如下配置:module.exports = { options: { // 将所有警告转为错误 failOnWarnings: true, // 仅将重复ID的警告转为错误,其他警告保持原有等级 duplicateKey: 'error' } }vue-i18n-extract
执行提取命令时添加--error-on-duplicate参数,或在配置文件中设置errorOnDuplicate: true即可。formatjs(React生态常用)
执行formatjs extract命令时追加--errors-duplicate-ids参数,即可直接将重复ID警告转为错误,终止进程并返回非0退出码。
方案2:通用脚本拦截(适配所有工具)
如果所用的提取工具无相关原生配置,可以通过捕获执行输出匹配关键词的方式实现:
# 执行你的i18n提取命令,将输出同时打印到终端和日志文件 npm run i18n:extract 2>&1 | tee extract_temp.log # 匹配重复ID的警告关键词 if grep -q "Duplicate messages with id" extract_temp.log; then echo "ERROR: 检测到重复的i18n消息ID,请修改后重试" rm extract_temp.log exit 1 fi rm extract_temp.log
该方案可灵活自定义要拦截的警告关键词,不受工具本身功能限制,也可用于CI流水线中做卡点校验。
内容的提问来源于stack exchange,提问作者Terminator
相关产品推荐
相关产品推荐

