设置为生产模式时,Webpack Globalize失败构建:未提供格式化程序或解析器

Har*_*rel 7 node.js npm javascript-globalize webpack jquery-globalize

我正在研究React/Webpack/Globalize应用程序.在开发模式中,事情是好的(尽管Globalize坚持编译所有语言环境而不是我选择的语言环境,但这是另一天的另一个问题).
但是,当我production: true在我的webpack配置中设置时,我在运行时遇到以下错误npm run build

> webpack --config webpack.prod.config.js

/opt/app/ui/node_modules/globalize-webpack-plugin/GlobalizeCompilerHelper.js:72
      throw e;
            ^
Error: No formatters or parsers has been provided
Run Code Online (Sandbox Code Playgroud)

我的印象是globalize webpack插件用于处理预编译.知道我为什么会看到这个错误吗?当我设置的production: false东西编译正常.

我的插件设置是:

new GlobalizePlugin({
            production: true,
            developmentLocale: "en",
            supportedLocales: [ "en"],
            output: "i18n/[locale].[hash].js" 
        }),
Run Code Online (Sandbox Code Playgroud)

当文件更改并且webpack dev服务器重建时,我收到很多这些消息,表明我没有使用的语言环境的重新编译:

[461] ./~/cldr-data/main/es-PY/dateFields.json 15 kB {0} [optional]
[462] ./~/cldr-data/main/es-SV/dateFields.json 15 kB {0} [optional]
[463] ./~/cldr-data/main/es-US/dateFields.json 15 kB {0} [optional]
[464] ./~/cldr-data/main/es-UY/dateFields.json 15 kB {0} [optional]
[465] ./~/cldr-data/main/es-VE/dateFields.json 15 kB {0} [optional]
[466] ./~/cldr-data/main/es/dateFields.json 15 kB {0} [optional]
Run Code Online (Sandbox Code Playgroud)

我尝试的任何东西似乎都没有通过那个问题.
谢谢

Har*_*rel 2

就目前情况而言,messages密钥不是“可选”的,而是实际上必需的。Globalize.formatMessage("somekey")更重要的是,在某个地方,您需要通过调用(lang 文件中存在 somekey 的地方)来“启动”(由于缺乏更好的词)消息格式化程序。production当设置为时,所有这些都是必需的true

同样,如果您将 Production 设置为 true,则该output路径必须与源树中的现有路径匹配。例如,如果您的代码构建到 中/assets,则输出路径应该是assets/i18n/[locale].[hash].js. 否则,构建时将不会创建 i18n 目录。

所有这些都源自 github repo 中的讨论:

https://github.com/rxaviers/globalize-webpack-plugin/issues/10