如何在余烬构建中排除组件

时间:2018-08-27 11:50:18

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

简短说明:

在ember构建过程中,如何排除component.hbs中与某个组件相关的所有component.hbs.jsthis.route('component)router.js

详细说明:

认为您要在 ember应用程序中拥有一个组件,而您希望仅在开发环境中可以使用该组件请不要担心这种方法的效果如何是暂时的!),在进行生产生产时必须将其删除。

我尝试了一些ember-cli插件(broccoli-funnelember-cli-funnel),这些插件不包含component.hbs.js文件,但仍然可以看到对component.hbs的引用,并且this.route('component')/dist文件夹中的已编译JS文件中。

2 个答案:

答案 0 :(得分:1)

您有多种选择:

  1. 不排除文件或代码,但禁用,并带有ember-feature-flags标记

很棒的插件:https://github.com/kategengler/ember-feature-flags

  1. 从构建中排除文件

如pedro所述,您可以为此签出ember-composable-helpers。他们似乎剥离了index.js#treeForAddon中的文件。 https://github.com/DockYard/ember-composable-helpers/blob/master/index.js#L28-L33

这也可能有助于: Place to put assets for dev/test in emberjs

  1. 从构建中排除代码

可能会更复杂...您可以检查Ember如何使用其功能标志(尽管我不确定他们是否使用defeatureifybabel-plugin-filter-imports) *灰烬功能标志:https://guides.emberjs.com/release/configuring-ember/feature-flags/

希望这会有所帮助!

答案 1 :(得分:1)

有两个可能对您有帮助的选项:

快速方法是安装Ember-Cli-Tree-Shaker。在ember-cli-build.js文件中,可以包含一个[exclude]文件路径数组,该文件路径始终要删除。但是,这是一个实验性项目,请遵循网站上的所有免责声明。

从构建中剥离组件的时间更长,但可能更稳定的方法是使用create an in-repo addon,在该插件的index.js文件中,过滤treeForAddon()和{{ 1}}钩子。这是一个示例:https://github.com/kaliber5/ember-bootstrap/blob/master/index.js#L282