不同客户的不同版本

时间:2019-02-19 15:27:50

标签: angular npm angular-cli

我正在Angular 6中开发一个应用程序,希望可以在许多客户端上安装。

其中每个人都需要个性化,但它们有许多共同的部分。

我想要一个目录结构:

  library(data.table)
  dt <- structure(list(ID = c(1001, 1001, 1001, 1001, 1002, 1002, 1003, 
  1003, 1003, 1003, 1004, 1005, 1005, 1006, 1006, 1006, 1006), 
Wave = c(1, 2, 3, 4, 1, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 
4), Score = c(28, 27, 28, 26, 30, 30, 30, 30, 29, 28, 22, 
20, 18, 22, 23, 25, 19)), row.names = c(NA, -17L), class = c("data.table", 
"data.frame"))

dt[ , .(Score, N = uniqueN(.SD)) , by = list(ID), .SDcols = c("Wave")][N == 4,]

 >   ID Score N
 1: 1001    28 4
 2: 1001    27 4
 3: 1001    28 4
 4: 1001    26 4
 5: 1003    30 4
 6: 1003    30 4
 7: 1003    29 4
 8: 1003    28 4
 9: 1006    22 4
10: 1006    23 4
11: 1006    25 4
12: 1006    19 4

如您所见,customer1定制了导航栏和房屋,2定制了房屋,3定制了页脚。

我想做的是

Windows("New Initiative Template VBA v3.xlsm").DisplayGridlines = False

我可以做类似

的操作
/src    
    /app        
        /components             
            /navbar
                /navbar.component.html
                /navbar.component.ts            
            /footer
                /footer.component.html
                /footer.component.ts            
            /store
                /store.component.html
                /store.component.ts             
            /home
                /home.component.html
                /home.component.ts      
        /customer1          
            /navbar
                /navbar.component.html
                /navbar.component.ts            
            /home
                /home.component.html
                /home.component.ts      
        /customer2          
            /home
                /home.component.html
                /home.component.ts      
        /customer3          
            /footer
                /footer.component.html
                /footer.component.ts

并获取您目录下的文件(如果存在),如果没有,则取下这些文件。

您认为有可能吗?

4 个答案:

答案 0 :(得分:1)

要进行此类管理/自动化,Angular提供的最佳工具是Angular Schematics。看看this tutorial,这是一个很好的起点。

在您的情况下,您需要创建一个示意图,该示意图将创建一个角度项目,并设置所有常见的零件,我想这看起来像这样:

/src    
/app        
    /components             
        /navbar
            /navbar.component.html
            /navbar.component.ts            
        /footer
            /footer.component.html
            /footer.component.ts            
        /store
            /store.component.html
            /store.component.ts             
        /home
            /home.component.html
            /home.component.ts 

然后,在生成基本代码后,您或您的客户将能够像其他所有Angular项目一样对其进行修改和构建。

答案 1 :(得分:1)

是的,您可以对npm scriptsng build --environment=做类似的事情,但这不一定意味着您应该这样做。您是否考虑过将常用组件纳入Angular库或npm软件包的一部分,并为每个客户准备一个应用程序/存储库?如果需要,还可以将其与Angular Schematics结合使用。

答案 2 :(得分:0)

您可以在环境中实现它:

  • 为您的客户创建新环境
  • 使用所有要更改的文件创建一个新文件夹
  • 打开angular.json文件并在以下位置搜索配置选项 该项目,然后搜索您的环境(也许是为了创建它 必须这样做)。
  • 查找fileReplacements并使用此语法替换 您需要的那些。
  • 如果您也想为这种环境提供服务,则必须将其包含在
    中 服务/配置中的angular.json文件。

答案 3 :(得分:0)

解决与此相关的其他问题:

Exclude files from angular environment

答案是帮助我使用enviroments属性(根据需要创建的数量)找到更优雅的解决方案,并插入usefileReplacements,将此变量用于.ts文件或ng-if或ng中的differents函数-显示在我的.html文件中。