0

简短说明:

如何在 ember 构建时排除所有component.hbscomponent.hbs.jsthis.route('component)提及与组件相关的内容。router.js

长解释:

认为您的ember 应用程序中有一个组件,您希望仅在开发环境中可用暂时不要担心这种方法有多好!!)并且必须在构建生产环境时将其删除。

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

4

2 回答 2

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)* Ember 功能标志:https ://guides.emberjs.com/release/配置余烬/功能标志/

希望这可以帮助!

于 2018-08-27T14:51:28.770 回答
1

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

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

从构建中剥离组件的更长但可能更稳定的方法是创建一个 in-repo 插件,并在该插件的index.js文件中过滤treeForAddon()treeForAddonTemplates()钩子中的组件。这是一个例子:https ://github.com/kaliber5/ember-bootstrap/blob/master/index.js#L282

于 2018-08-27T17:17:51.897 回答