Приложение для сборки с несколькими конфигурациями - PullRequest
0 голосов
/ 04 июня 2018

Можно ли объединить общие стили с конкретными стилями конфигурации?Или, если быть точным, создать приложение с несколькими конфигурациями?


У меня есть приложение, в котором используются различные темы материала в зависимости от конфигурации, использованной во время сборки.Вот как выглядит build часть приложения angular.json:

"build": {
  "builder": "@angular-devkit/build-angular:browser",
    "options": {
        "outputPath": "dist/my-app",
        "index": "src/index.html",
        "main": "src/main.ts",
        "tsConfig": "src/tsconfig.app.json",
        "scripts": [ ],
        "styles": [
          // These are the common styles
          "src/styles.scss"
        ],
        "assets": [
          "src/assets",
          "src/favicon.ico"
        ]
      },
      "configurations": {
        "theme-one": {
          "styles": [                
            "src/styles/themes/material.theme-one.scss"
          ]
        },
        "theme-two": {
          "styles": [                
            "src/styles/themes/material.theme-two.scss"
          ]
        }
      }
    },

▶ Ожидаемое поведение:

Я хотел бы добавить / объединить styles, указанный в индивидуальной конфигурации, вместе с styles, указанным в build:options.Например, с помощью следующей команды:

ng build --configuration theme-one

Вышеприведенная команда должна включать "src/styles.scss" и "src/styles/themes/material.theme-one.scss".То же самое для theme-two.

▶ Текущее поведение:

Текущее поведение таково, что когда я задаю конфигурацию, styles из этогоконфигурации включены, но build:options:styles игнорируются.

Есть идеи, как мне этого добиться?

1 Ответ

0 голосов
/ 05 июня 2018

после обсуждения вашего вопроса с Филипе Сильвой (из основной команды CLI), сейчас для этого не существует API.Я предлагаю вам открыть вопрос с этим как запрос функции в репозитории CLI.

Между тем, один из способов сделать это - дублировать параметры конфигурации, что-то вроде этого:

"configurations": {
    "theme-one": {
      "styles": [   
        "src/styles.scss",          
        "src/styles/themes/material.theme-one.scss"
      ]
    },
    "theme-two": {
      "styles": [
        "src/styles.scss",                
        "src/styles/themes/material.theme-two.scss"
      ]
    }
  }

Приветствие.

...