Разные версии для разных клиентов - PullRequest
0 голосов
/ 19 февраля 2019

Я разрабатываю приложение на Angular 6, которое надеюсь установить на многих клиентах.

Каждому из них потребуется персонализация, но у них будет много общих частей.

ЧтоЯ хотел бы иметь структуру каталогов:

/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

Как вы можете видеть, customer1 настроил панель навигации и дом, 2 только дом и 3 нижний колонтитул.

Я хотел бы, чтобы при создании

npm run build

я мог сделать что-то вроде

npm run build customer1 

и взять файлы, которые находятся в вашем каталоге, если они существуют и если их нетте, которые были под компонентами.

Как вы думаете, это было бы возможно?

Ответы [ 4 ]

0 голосов
/ 15 марта 2019

Решая другие проблемы с этим, я спрашиваю:

Исключить файлы из угловой среды

И ответ помогает мне найти более элегантные решения, используя свойства среды (Я создаю столько, сколько мне нужно), и я использую fileReplacements, использую эту переменную для использования различных функций в моих файлах .ts или с помощью ng-if или ng-show в моих файлах .html.

0 голосов
/ 19 февраля 2019

Да, вы можете сделать что-то подобное с npm scripts и ng build --environment=, но это не обязательно означает, что вы должны.Рассматривали ли вы сделать ваши общие компоненты частью библиотеки Angular или пакета npm и иметь приложение / репо для каждого клиента?Вы также можете комбинировать это с угловыми схемами, если хотите.

0 голосов
/ 25 февраля 2019

Вы можете достичь этого с помощью среды:

  • Создать новую среду для своих клиентов
  • Создать новую папку со всеми файлами, которые вы хотите изменить
  • Откройте файл angular.json и найдите параметр конфигурации в проекте и выполните поиск в своей среде (возможно, для ее создания вам необходимо это сделать).
  • Найдите fileReplacements и используйте этот синтаксис для замены тех, которые вы используете.need.
  • Если вы хотите обслуживать и эту среду, вы должны включить ее в
    файл angular.json в serve / configurations.
0 голосов
/ 19 февраля 2019

Для такого рода управления / автоматизации лучшим инструментом, доступным Angular, является Angular Schematics.Взгляните на этот учебник , это отличное место для начала.

В вашем случае вам нужно создать схему, которая создает угловой проект со всеми общими частями, которые я настроил.предположим, что это будет выглядеть так:

/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.

...