Ember addon Vs普通包装

时间:2015-11-24 08:04:15

标签: javascript ember.js ember-cli ember-cli-addons

我试图了解Ember插件和正常包装之间的差异,而不是在我的应用程序中消费方面。

所以我想了解以下几点;

  
      
  1. 消费两者的差异?比如我们需要导入什么,Brocfile更改等等各个模块可以在路由或控制器内部使用它们等等。
  2.   
  3. 两者的安装过程是否相同?他们都可以住在任何仓库或注册表(如npm或bower注册表)
  4.   
  5. 它们如何或在何处驻留在构建输出中,即在dist文件夹中?
  6.   
  7. 我们如何决定是否将某些内容打包为addon Vs普通包(从开发人员的角度来看,这更多)?
  8.   

您还可以突出显示任何其他重大差异。

1 个答案:

答案 0 :(得分:0)

免责声明:这是我的理解,但我自己并没有建立一个插件,所以我可能会有一些误解。

Ember插件基本上是普通的封装,带有一些额外的结构,使它们更容易集成到ember应用程序中。

  1. 使用Ember插件时,您可以导入与任何普通包完全相同的内容。唯一的区别来自需要向解析器注册的对象(服务,adapers,帮助器等):它们将被自动检测,添加到您的项目并注册。这就是为什么在安装之后说ember-notify,你可以在某个组件/控制器中Ember.inject.service('notify'),它就可以工作。

    详细信息供插件作者选择。通常,插件将注册受益于依赖注入的公共对象(模板助手和服务,主要是 - 虽然一些插件定义了新的注入类型,并带有一些打包的,例如ember-validations注册其validators)。对于其他功能,您可以正常导入内容(import thing from 'addon/thing';)。

  2. 使用npm安装Ember插件(您可以在项目的node_modules下找到它们)。您甚至可以自己使用npm安装它们,只需记住将它们添加到package.json,以便ember build包含它们。

  3. 在构建输出中,它们应该简单地打包到assets/vendor.js

  4. 我会说经验法则应该是:如果是特定于余烬,请将其作为插件。否则,坚持正常包装。但实际上,一个ember插件基本上是一个具有特定布局的普通包。