4

我正在将 react-intl 迁移到 3.0 版,并且需要为 IE 填充语言环境数据。具体来说,我想为 en-US 加载语言环境数据的 polyfill。我只能找到@formatjs/intl-relativetimeformat/dist/locale-data/en语言环境文件。

if (!Intl.RelativeTimeFormat) {
  // eslint-disable-next-line global-require
  require('@formatjs/intl-relativetimeformat/polyfill');
  // eslint-disable-next-line global-require
  require('@formatjs/intl-relativetimeformat/dist/locale-data/en-US');
}

它导致此错误:

Module not found: Error: Can't resolve '@formatjs/intl-relativetimeformat/dist/locale-data/en-US' in '/xxx/xxx/xxx/xxx/app'

4

3 回答 3

3

尝试以下格式"@formatjs/intl-relativetimeformat": "^7.2.0",

import '@formatjs/intl-pluralrules/polyfill'
import '@formatjs/intl-pluralrules/locale-data/en'
import '@formatjs/intl-pluralrules/locale-data/de'

import '@formatjs/intl-relativetimeformat/polyfill'
import '@formatjs/intl-relativetimeformat/locale-data/en'
import '@formatjs/intl-relativetimeformat/locale-data/de'

并且addLocaleData没有根据https://formatjs.io/docs/react-intl/upgrade-guide-3x/#migrate-to-using-native-intl-apis删除

于 2020-08-18T09:37:16.273 回答
2

尝试安装:

npm i @formatjs/intl-relativetimeformat
于 2020-01-17T10:00:59.153 回答
0

我遇到了同样的问题,当我检查 node_modules/ 中的 @formatjs 目录时,没有 dist 目录 @formatjs/intl-relativetimeformat/**dist/**locale-data/en 所以我从导入中删除了它,一切正常美好的。

于 2020-12-30T15:46:54.023 回答