Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 使用TypeScript在CRA中提取i18n消息_Reactjs_Typescript_Internationalization_React Intl_Babel Plugin React Intl - Fatal编程技术网

Reactjs 使用TypeScript在CRA中提取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创建应用程

我正在尝试提取i18n消息(由
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
    中的消息从
    react intl
    提取到json文件中
  • 必须在CRA中使用
    --typescript
  • 不应使用npm运行弹出
我所尝试的:

  • ++