简短说明:
在ember构建过程中,如何排除component.hbs
中与某个组件相关的所有component.hbs.js
,this.route('component)
和router.js
。
详细说明:
认为您要在 ember应用程序中拥有一个组件,而您希望仅在开发环境中可以使用该组件(请不要担心这种方法的效果如何是暂时的!),在进行生产生产时必须将其删除。
我尝试了一些ember-cli
插件(broccoli-funnel,ember-cli-funnel),这些插件不包含component.hbs.js
文件,但仍然可以看到对component.hbs
的引用,并且this.route('component')
在/dist
文件夹中的已编译JS文件中。
答案 0 :(得分:1)
您有多种选择:
很棒的插件:https://github.com/kategengler/ember-feature-flags
如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
可能会更复杂...您可以检查Ember如何使用其功能标志(尽管我不确定他们是否使用defeatureify
或babel-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