设置为生产模式时,Webpack Globalize生成失败:未提供格式化程序或parsing器
我正在研究一个React / Webpack / Globalize应用程序。 在开发模式中,事情是好的(尽pipeGlobalize坚持编译所有语言环境,而不是我select的语言环境,但这是另一个问题)。
但是,当我设置production: true
在我的webpackconfiguration,运行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
我的印象是全球化的webpack插件是为了处理预编译。 任何想法,为什么我看到这个错误? 当我设定production: false
东西编译好。
我的插件设置是:
new GlobalizePlugin({ production: true, developmentLocale: "en", supportedLocales: [ "en"], output: "i18n/[locale].[hash].js" }),
当一个文件改变和webpack开发服务器重build,我收到很多这些消息,指出我不使用的区域设置的重新编译:
[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]
没有任何我尝试似乎通过这个问题。
谢谢
就目前而言, messages
密钥不是“可选的”,但实际上是必需的。 更重要的是,通过调用Globalize.formatMessage("somekey")
(lang文件中存在的某个键),需要在某处“主要”(缺less一个更好的单词)消息格式化程序。 production
设置为true
时,所有这些都是必需的。
同样,如果将生产设置为true,则output
path必须与源树中的现有path匹配。 例如,如果你的代码构build到/assets
,输出path应该是assets/i18n/[locale].[hash].js
。 否则i18n目录将不会在build上创build。
所有这一切都源自github回购中的讨论:
https://github.com/rxaviers/globalize-webpack-plugin/issues/10