web-dev-qa-db-fra.com

Angular 6: Configurations multiples (deux environnements)

Essayer d'obtenir angular-cli de reconnaître plusieurs configurations dans angular.json

C:\_dev\myapp>ng serve --configuration development
Configuration 'development' could not be found in project 'myapp'.
Error: Configuration 'development' could not be found in project 'myapp'.

L'extrait étant:

    "configurations": {
        "production": {
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.production.ts"
            }
          ],
          "optimization": true,
          "outputHashing": "all",
          "sourceMap": false,
          "extractCss": true,
          "namedChunks": false,
          "aot": true,
          "extractLicenses": true,
          "vendorChunk": false,
          "buildOptimizer": true
        },
        "development": {
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.development.ts"
            }
          ],
          "optimization": false,
          "outputHashing": "all",
          "sourceMap": true,
          "extractCss": true,
          "namedChunks": true,
          "aot": false,
          "extractLicenses": false,
          "vendorChunk": true,
          "buildOptimizer": false
        }
      }

src/environments/environment.development.ts existe

ng serve --configuration production 

fonctionne bien

31

Il y a une entrée configurations dans le build et dans la section serve du angular.json fichier. La partie Serveur doit également connaître votre configuration personnalisée. En supposant que le nom de votre configuration est debug, ajoutez-le à la section serve comme suit

"projects": {
  "myApp": {
     [...]
     "architect": {
       "build": {
         [...]
         "configurations": {
           "production": { [...] },
           "debug": { [...] }
         }
       },
       "serve": {
         [...]
         "configurations": {
           "production": {
             "browserTarget": "myApp:build:production"
           },
           "debug": {
             "browserTarget": "myApp:build:debug"
           }
         }
       }
     }
   }
 }

N'oubliez pas de régler myApp sur le nom de votre projet, ce qui correspond à l'enfant direct de la section project de votre angular.json . De plus, les deux debug devraient correspondre à votre configuration dans la section build.

Puis servir avec

ng serve --configuration=debug
52
ngfelixl