Различные конфигурации среды при создании приложения Angular - PullRequest
1 голос
/ 09 марта 2020

Я работаю с Angular 9, и у меня есть файл config.json, который загружается во время выполнения. У меня есть dev/config.json и prod/config.json, которые загружаются в зависимости от того, запускаю ли я приложение локально или собираю его для производства. До сих пор я вручную комментировал пути к файлам, например:

  // this.configPath = '/config/config-dev.json';
     this.configPath = '/config/config-prod.json'; 

Было бы удобнее, если бы путь всегда был одинаковым:

     this.configPath = '/config/config.json'; 

и соответствующий конфиг. json будет скопирован в зависимости от того, запущен ли я локально или собираюсь для prod: например, в angular. json.

"architect": {
        "build": {        
          "options": {                
            "assets": [
              "src/favicon.ico",
              "src/favicon-16x16.png",
              "src/favicon-32x32.png",
              "src/assets",
              "src/config/dev/config.json",
           or "src/config/prod/config.json",

Можно ли настроить angular.json, чтобы определить, какой файл конфигурации должен использовать и скопировать его в папку config?

1 Ответ

4 голосов
/ 09 марта 2020

Начиная с Angular версии более поздней, чем 4. В них встроена встроенная функция, позволяющая обрабатывать file replacements. Это хорошее чтение для вас

Для вашего примера, допустим, у вас есть такая файловая структура

└──myProject/src/config/
               └──config.ts
               └──config.prod.ts
               └──config.stage.ts

Вам просто нужно указать, какой файл должен angular заменить на config.ts в зависимости от того, с какой средой вы собираетесь строить.

Примерно так:

"configurations": {
   "production": {
     "fileReplacements": [
       {
         "replace": "src/environments/config.ts",
         "with": "src/environments/config.prod.ts"
       }
     ],
     ...

Чтобы построить с использованием производственной конфигурации, выполните следующую команду :

 ng build --configuration=production

Примечание. Свойства, которые вы собираетесь присвоить config.ts, должны соответствовать настройкам среды разработки по умолчанию. Так что каждый раз, когда вы собираетесь serve ваше приложение, эти значения будут извлекаться

...