我正在开发 React/Webpack/Globalize 应用程序。
在开发模式下一切正常(尽管 Globalize 坚持编译所有语言环境而不是我选择的语言环境,但这是另一天的另一个问题)。
但是,当我在我的 webpack 配置中设置 production: true
时,运行 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
我的印象是 globalize webpack 插件是用来处理预编译的。知道为什么我会看到这个错误吗?当我设置 production: false
时编译正常。
我的插件设置是:
new GlobalizePlugin({
production: true,
developmentLocale: "en",
supportedLocales: [ "en"],
output: "i18n/[locale].[hash].js"
}),
当文件更改和 webpack 开发服务器重建时,我收到很多这样的消息,表明我没有使用的语言环境重新复杂化:
[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")
(其中 somekey 存在于您的 lang 文件中)来“启动”(缺少更好的词)消息格式化程序。当 production
设置为 true
时,所有这些都是必需的。
此外,如果您确实将 production 设置为 true,则 output
路径必须与源代码树中的现有路径相匹配。例如,如果您的代码构建到 /assets
中,则输出路径应为 assets/i18n/[locale].[hash].js
。否则 i18n 目录将不会在构建时创建。
所有这些都来自github repo中的讨论:
https://github.com/rxaviers/globalize-webpack-plugin/issues/10
关于node.js - 当设置为生产模式 : No formatters or parsers provided 时,Webpack Globalize 构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34360579/