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)
我尝试的任何东西似乎都没有通过那个问题.
谢谢
就目前情况而言,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