Reactjs 使用TypeScript在CRA中提取i18n消息
我正在尝试提取i18n消息(由Reactjs 使用TypeScript在CRA中提取i18n消息,reactjs,typescript,internationalization,react-intl,babel-plugin-react-intl,Reactjs,Typescript,Internationalization,React Intl,Babel Plugin React Intl,我正在尝试提取i18n消息(由react intl的defineMessages定义),以便使用TypeScript在CRA中正常工作。 我有一个由CRA引导的现有react应用程序,有几百行代码。因此,重写没有类型脚本的应用程序不是一个选项 以下是我迄今为止所尝试的: 第一次尝试 遵循此操作以使其正常工作。 严格遵循指南(尽管react intl cra已被弃用),语言文件将正确生成。 但是,如果使用create-react-app-react-intl示例--typescript创建应用程
react intl
的defineMessages
定义),以便使用TypeScript在CRA中正常工作。我有一个由CRA引导的现有react应用程序,有几百行代码。因此,重写没有类型脚本的应用程序不是一个选项
以下是我迄今为止所尝试的: 第一次尝试 遵循此操作以使其正常工作。
严格遵循指南(尽管
react intl cra
已被弃用),语言文件将正确生成。但是,如果使用
create-react-app-react-intl示例--typescript
创建应用程序,并将script
更改为
"extract:messages": "react-intl-cra 'src/**/*.{js,jsx,ts,tsx}' -o 'src/i18n/messages/messages.json'"
它将因编译器错误而中断
第二次尝试
由于react-intl-cra
指的是一个react-app-rewired
解决方案,我尝试将它与customize-cra
和babel-plugin-react-intl
一起添加到新生成的cra中(使用TS)。然而,那里也没有运气,经过一段短时间的研究,我发现这是一个错误
第三次尝试:
将extract react intl messages
添加到我的项目并运行:
$npx extract messages-l=en,ja-o app/translations-d en--flat false'src/**/!(*.test).tsx'
失败,同时出现错误
我没有主意了,所以我来这里问。从我所看到的情况来看,TypeScript在过去的几年里得到了很好的宣传,我不认为我必须证明React仍然被大肆宣传。此外,我无法想象i18n在应用程序开发中是一个不常见的问题。
然而,我在npmjs.com上找不到任何最新的指南或任何有用的东西 TL;博士 我需要的是:
- 将
中的消息从defineMessages
提取到json文件中react intl
- 必须在CRA中使用
--typescript
- 不应使用npm运行弹出
- ++