【问题标题】:Angular-cli tree-shaking exclude component from removalAngular-cli tree-shaking 将组件排除在删除之外
【发布时间】:2017-03-10 06:02:01
【问题描述】:

我正在使用 angular-cli 开发一个 angular 2 应用程序

angular 2   - 2.1.1
angular-cli - 1.0.0-beta.18

该应用程序的一个功能是列出所有事件,然后单击一个事件会在 3 个选项卡中显示事件详细信息 - 概述、照片和门票

我开发此功能的方式是将所有事件存储在我的数据库中,并且概述、照片和门票选项卡的内容也在数据库中。因此,这样我就可以只拥有一个组件来呈现 3 个选项卡并填充从 DB 获取的每个选项卡内容。现在有趣的一点是大多数事件将具有相同的布局和部分,但对于一些可能需要不同的布局。因此,为了解决这个问题,我正在做的是与 2 个选项卡内容(概述、照片、票证)中的每一个一起,我还存储了将呈现此事件的组件的名称。

我使用 ComponentFactoryResolverViewContainerRef 的组件的 somehow managed to get the component from the name 并且一切正常,但是当我尝试为生产环境构建时出现问题它们实际上并没有在代码中引用/导入,而是根据从 db 检索到的数据动态创建/呈现,并且我的应用程序由于找不到这些组件而崩溃。

所以我的问题是/是

  1. 有没有办法避免某些组件在摇树过程中被移除/丢弃? 一种。如果是,那么如何?
    湾。如果否,那还有什么选择?

【问题讨论】:

    标签: angular webpack angular-cli


    【解决方案1】:

    将这些组件添加到

    @NgModule({
      entryComponents: [...],
      ...
    })
    

    https://angular.io/docs/ts/latest/api/core/index/NgModule-interface.html#!#entryComponents-anchor

    【讨论】:

    • 这没有帮助。我已经有了它,没有那个角度即使在开发模式/环境中也无法找到这样的动态组件。
    • 这应该足以防止它被摇树。如果不是,那是工具中某处的错误。
    • 这也是我的理解,也许你是对的,它是工具中的一个错误。将在github上提出票,并会看到cli团队有什么要说的
    • @GünterZöchbauer 如果您能看一下stackoverflow.com/questions/42537138/…,我将不胜感激,这就像这个问题的后续行动。也许你可以从我在那里提供的代码中推断出更多。谢谢!
    • 抱歉,帮不上忙。
    猜你喜欢
    • 1970-01-01
    • 2017-04-26
    • 2018-04-29
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    • 2018-03-18
    • 2019-08-16
    相关资源
    最近更新 更多