7

我正在开发一个 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

我的印象是 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]

我尝试的任何方法似乎都无法解决这个问题。
谢谢

4

1 回答 1

2

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

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

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

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

于 2015-12-27T01:50:57.643 回答