在 Ember CLI 构建期间合并插件供应商文件

Combine Addon Vendor Files During Ember CLI Build

假设我有三个自定义 Ember 插件...

addon-a
addon-b
addon-c

我希望每个插件都包含自己的 vendor/translations/ 文件夹,其中包含每个区域设置的不同 JSON 文件。

addon-a
  vendor
    translations
      en.json
      es.json
      ...
addon-b
  vendor
    translations
      en.json
      es.json
      ...
addon-c
  vendor
    translations
      en.json
      es.json
      ...

我想在我的主要 Ember.js 应用程序 (my-app) 中包含这三个插件。在构建过程中,我想为每个语言环境创建一个 JSON 文件,其中包含所有三个插件的内容。

// my-app's final en.json file.
{
    "addon-a": {
        // addon-a en.json contents output here.
    },
    "addon-b": {
        // addon-b en.json contents output here.
    },
    "addon-c": {
        // addon-c en.json contents output here.
    }
}

我正在使用 app.import('vendor/translations/en.json') 来包含插件的 JSON 文件进入我的应用程序的构建输出。但是,我坚持尝试为每个语言环境创建单个 JSON 文件。然后我想删除插件的 JSON 文件,这些文件是为创建串联文件而导入的。

我想做的事情可行吗?如果是这样,任何人都可以提供有关如何实现此目标的步骤或指出类似的示例吗?谢谢!

经过一番思考,我认为最好的方法是在 Ember 应用程序中创建自定义 Broccoli 插件。该插件将遍历所有插件,并在构建时将所有翻译聚合到联合文件中。

此答案基于 ember-intl's TranslationReducer Broccoli plugin