【问题标题】:How to exclude a component in ember build如何在 ember 构建中排除组件
【发布时间】:2018-08-27 11:50:18
【问题描述】:

简短说明:

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

详细解释:

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

我已经尝试了一些ember-cli 插件(broccoli-funnelember-cli-funnel),它们排除了component.hbs.js 文件,但我仍然可以在@ 编译的JS 文件中看到对component.hbsthis.route('component') 的引用987654332@文件夹。

【问题讨论】:

  • 您可能想查看ember-composable-helpers (github.com/DockYard/ember-composable-helpers) 的代码,他们为要包含在构建中的组件设置了白名单/后备名单配置......可能会有一些运气。
  • 你能把它放到一个附加组件中吗?欢迎页面做你想做的事......

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


【解决方案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 是如何使用其功能标志的(尽管我不确定他们使用的是 defeatureify 还是 babel-plugin-filter-imports) * Ember 功能标志:https://guides.emberjs.com/release/configuring-ember/feature-flags/

希望这会有所帮助!

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-01-26
      • 2014-03-18
      • 2016-07-08
      • 2021-10-02
      • 2021-11-20
      • 2020-08-18
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      相关资源
      最近更新 更多