NG9: Unable to add new environment file

208 views
Skip to first unread message

Bruce

unread,
Jul 21, 2020, 1:27:28 PM7/21/20
to Angular and AngularJS discussion

I'm using Angular 9 (VS Code in Win 10). Started with the two default environment files. Added a third, environment.qa.ts.

Updated angular.json: replacements section and the serve/configurations section:

{
 
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
 
"version": 1,
 
"newProjectRoot": "projects",
 
"projects": {
   
"pcTest": {
     
"projectType": "application",
     
"schematics": {},
     
"root": "",
     
"sourceRoot": "src",
     
"prefix": "app",
     
"architect": {
       
"build": {
         
"builder": "@angular-devkit/build-angular:browser",
         
"options": {
           
"outputPath": "dist/pcTest",
           
"index": "src/index.html",
           
"main": "src/main.ts",
           
"polyfills": "src/polyfills.ts",
           
"tsConfig": "tsconfig.app.json",
           
"aot": true,
           
"assets": [
             
"src/favicon.ico",
             
"src/assets"
           
],
           
"styles": [
             
"src/styles.css"
           
],
           
"scripts": []
         
},
         
"configurations": {
           
"production": {
             
"fileReplacements": [
               
{
                 
"replace": "src/environments/environment.ts",
                 
"with": "src/environments/environment.prod.ts"
               
}
             
],
             
"qa": {
               
"fileReplacements": [
                 
{
                   
"replace": "src/environments/environment.ts",
                   
"with": "src/environments/environment.qa.ts"
                 
}
               
],
             
"optimization": true,
             
"outputHashing": "all",
             
"sourceMap": false,
             
"extractCss": true,
             
"namedChunks": false,
             
"extractLicenses": true,
             
"vendorChunk": false,
             
"buildOptimizer": true,
             
"budgets": [
               
{
                 
"type": "initial",
                 
"maximumWarning": "2mb",
                 
"maximumError": "5mb"
               
},
               
{
                 
"type": "anyComponentStyle",
                 
"maximumWarning": "6kb",
                 
"maximumError": "10kb"
               
}
             
]
           
}
         
}
       
},
       
"serve": {
         
"builder": "@angular-devkit/build-angular:dev-server",
         
"options": {
           
"browserTarget": "pcTest:build"
         
},
         
"configurations": {
           
"production": {
             
"browserTarget": "pcTest:build:production"
           
},
           
"qa": {
             
"browserTarget": "pcTest:build:qa"
           
}
         
}
       
},
       
"extract-i18n": {
         
"builder": "@angular-devkit/build-angular:extract-i18n",
         
"options": {
           
"browserTarget": "pcTest:build"
         
}
       
},
       
"test": {
         
"builder": "@angular-devkit/build-angular:karma",
         
"options": {
           
"main": "src/test.ts",
           
"polyfills": "src/polyfills.ts",
           
"tsConfig": "tsconfig.spec.json",
           
"karmaConfig": "karma.conf.js",
           
"assets": [
             
"src/favicon.ico",
             
"src/assets"
           
],
           
"styles": [
             
"src/styles.css"
           
],
           
"scripts": []
         
}
       
},
       
"lint": {
         
"builder": "@angular-devkit/build-angular:tslint",
         
"options": {
           
"tsConfig": [
             
"tsconfig.app.json",
             
"tsconfig.spec.json",
             
"e2e/tsconfig.json"
           
],
           
"exclude": [
             
"**/node_modules/**"
           
]
         
}
       
},
       
"e2e": {
         
"builder": "@angular-devkit/build-angular:protractor",
         
"options": {
           
"protractorConfig": "e2e/protractor.conf.js",
           
"devServerTarget": "pcTest:serve"
         
},
         
"configurations": {
           
"production": {
             
"devServerTarget": "pcTest:serve:production"
           
}
         
}
       
}
     
}
   
}},
 
"defaultProject": "pcTest"
}}


My package.json looks like this:

{
  "name": "pc-test",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "~10.0.0",
    "@angular/common": "~10.0.0",
    "@angular/compiler": "~10.0.0",
    "@angular/core": "~10.0.0",
    "@angular/forms": "~10.0.0",
    "@angular/platform-browser": "~10.0.0",
    "@angular/platform-browser-dynamic": "~10.0.0",
    "@angular/router": "~10.0.0",
    "rxjs": "~6.5.5",
    "tslib": "^2.0.0",
    "zone.js": "~0.10.3"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.1000.0",
    "@angular/cli": "~10.0.0",
    "@angular/compiler-cli": "~10.0.0",
    "@angular/language-service": "~10.0.0",
    "@types/node": "^12.11.1",
    "@types/jasmine": "~3.3.8",
    "@types/jasminewd2": "~2.0.3",
    "codelyzer": "^5.1.2",
    "jasmine-core": "~3.5.0",
    "jasmine-spec-reporter": "~5.0.0",
    "karma": "~5.0.0",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage-istanbul-reporter": "~3.0.2",
    "karma-jasmine": "~3.3.0",
    "karma-jasmine-html-reporter": "^1.5.0",
    "protractor": "~7.0.0",
    "ts-node": "~7.0.0",
    "tslint": "~6.1.0",
    "typescript": "~3.9.5"
  }
}

I build: ng build -c qa

I get the following error:

An unhandled exception occurred: Workspace config file cannot be loaded: C:\Dev\Angular\ParentChild\pcTest\angular.json

Schema validation failed with the following errors:

Data path ".projects['defaultProject']" should be object.

See "C:\Users\me\AppData\Local\Temp\ng-u4Hi9q\angular-errors.log" for further details.

The log file contains:

[[error] Error: Workspace config file cannot be loaded: C:\Dev\Angular\ParentChild\pcTest\angular.json
Schema validation failed with the following errors:

  Data path ".projects['defaultProject']" should be object.
    at Object.getWorkspace (C:\Dev\Angular\ParentChild\pcTest\node_modules\@angular\cli\utilities\config.js:72:15)

What does this mean?



Arnaud Deman

unread,
Jul 21, 2020, 2:52:42 PM7/21/20
to Angular and AngularJS discussion
Hello Bruce,
I think the  "{" of "production"  is not closed so your json is not valid.
Regards,
Arnaud.
Reply all
Reply to author
Forward
0 new messages