gpt4 book ai didi

angular - 一个项目,多个客户。 Angular 2

转载 作者:行者123 更新时间:2023-12-04 13:22:30 26 4
gpt4 key购买 nike

好吧,我有一个问题,我似乎无法找到答案。

假设我有一个项目 x,它将被多个客户端使用,每个客户端都有自己的功能,可以共享或不共享,还有自己的自定义样式表和 html 布局。

所以按照正常的 Angular 2 次点击模式,我想知道这是否可行。

例子

foo
--foo.component.css
--foo.component.html
--foo.component.spec.ts
--foo.component.ts
--client-x
----foo.component.css
----foo.component.html
--client-y
----foo.component.css
----foo.component.html
----foo.comoonent.ts

如您所见,第一层是基础实现。然后客户端 x 使用相同的功能,但只是覆盖样式和 html,而客户端 y 覆盖所有功能以及样式和 css。

有人知道这是否可行以及这是否是个好主意。这样做的原因是,有多个项目包含基本相同的代码,如果在代码库中发现错误或我们正在添加功能,我们必须不断更新所有项目。我知道这在 Angular 1 中是可能的,因为我已经看到了这样的项目结构。我相信他们使用 gulp 作业来进行构建后构建,但我不确定这是否足够并且也不知道如何处理它。

您的意见将不胜感激。

最佳答案

我们有同样的问题,我们计划使用以下方法,该方法适用于小型概念验证项目

  • 拥有一个包含所有通用组件和模板的核心模块。
  • 每个客户端应用程序都作为子模块实现
  • 对于每个子模块,监视脚本将核心组件复制到该子模块的“基本”文件夹中。默认情况下,子模块声明并使用基础文件夹中的组件。

组件继承

要覆盖子组件的逻辑,请声明一个继承自核心组件的新组件。修改子模块以声明继承的组件,而不是基本文件夹中的组件

模板继承

我们使用 nunjucks该组件模板具有继承的 block 。

因此对于每个可以让其模板被子组件覆盖的组件,我们有一个 template.html.nunj,它被 nunjucks 编译为 template.html。

这是通过监视脚本完成的。 watch 脚本还检查子模块中的每个组件是否有一个 html 文件。如果有,则链接的 templateUrl 在基本文件夹中的相应组件中更改为指向该文件。这允许我们只覆盖模板,而不必重新声明 component.ts 文件

样式继承

使用 sass,在单独的文件中声明变量并使用相对路径引用它们。如果需要,可以修改一个继承的组件sass文件,导入核心组件的sass,然后覆盖下面的样式

关于angular - 一个项目,多个客户。 Angular 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48612458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com