我如何将我的 Ember CLI 插件拆分成普通 Ember 库和 Ember CLI 插件包装器?

How do i split my Ember CLI addon into a vanilla Ember library and an Ember CLI addon wrapper?

我按照 Ember CLI 主页上的说明创建了我的第一个 Ember CLI 插件。该插件运行良好,它已经在 Github 上获得了数颗星:https://github.com/lolmaus/ember-cli-stained-by-children

问题是没有 Ember CLI 就无法使用插件,例如,在 http://emberjs.jsbin.com/ 上。

我见过其他插件没有这样的限制:该库是作为 Bower 包实现的,可以使用或不使用 Ember CLI,还有一个 Ember提供了 CLI 插件包装器。

此类插件的一个示例是 Simple Auth。

它有三个存储库:

但是很难从中举出例子,因为 Simple Auth 是一个巨大的库。

题目是:

  1. 我如何组织主要源代码,以便我可以从中构建不同的库类型(全局和 Ember CLI 友好的 AMD)?
  2. 如何组织 Ember CLI 包装器代码?我应该怎么做才能利用图书馆?
  3. 如何自动发布?

有多种方法可以解决您的问题,因此应如何组织代码取决于您。现在,没有简单的构建管道来一次性生成基于全局的版本、AMD 版本和插件。如果你真的想实现以上所有目标,我会说首先编写一个(简单的)基于全局的版本,然后制作一个将其包装在 AMD 包装器中的构建脚本。然后将该 AMD 版本包装在一个插件中。