Recientemente actualicé mi aplicación de Angular 2.3.0 a Angular 4.0.3. En el proceso también se actualizó angular-cli. Si el proyecto se clonó en un nuevo directorio, arroja:
No se puede leer la propiedad 'config' de null TypeError: No se puede leer la propiedad 'config' de null en Class.run (/Users/hyadav/Documents/projects/web-app/node_modules/@angular/cli/tasks/build.js:16 :56) en Class.run (/Users/hyadav/Documents/projects/web-app/node_modules/@angular/cli/commands/build.js:143:26) en Class. (/Users/hyadav/Documents/projects/web-app/node_modules/@angular/cli/ember-cli/lib/models/command.js:134:17) en process._tickCallback (interno/process/next_tick.js: 109:7)
paquete.json
"scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" }, "private": true, "dependencies": { "@angular/animations": "^4.0.3", "@angular/cli": "^1.0.1", "@angular/common": "^4.0.3", "@angular/compiler": "^4.0.3", "@angular/compiler-cli": "^4.0.3", "@angular/core": "^4.0.3", "@angular/forms": "^4.0.3", "@angular/http": "^4.0.3", "@angular/material": "^2.0.0-beta.3", "@angular/platform-browser": "^4.0.3", "@angular/platform-browser-dynamic": "^4.0.3", "@angular/platform-server": "^4.0.3", "@angular/router": "^4.0.3", "core-js": "^2.4.1", "hammerjs": "^2.0.8", "rxjs": "^5.2.0", "typescript": "^2.2.2", "zone.js": "^0.8.4" }, "devDependencies": { "@angular/cli": "^1.0.1", "@angular/compiler-cli": "^2.4.0", "@types/jasmine": "2.5.38", "@types/node": "~6.0.60", "codelyzer": "~2.0.0", "jasmine-core": "~2.5.2", "jasmine-spec-reporter": "~3.2.0", "karma": "~1.4.1", "karma-chrome-launcher": "~2.0.0", "karma-cli": "~1.0.1", "karma-coverage-istanbul-reporter": "^0.2.0", "karma-jasmine": "~1.1.0", "karma-jasmine-html-reporter": "^0.2.2", "protractor": "~5.1.0", "ts-node": "~2.0.0", "tslint": "~4.4.2", "typescript": "~2.2.2" }Esta es una solución funcional hasta Angular v5 porque dentro de v6, la ubicación del archivo cambió a angular.json y también cambió el contenido.
Cree un nuevo archivo llamado .angular-cli.json e inserte:
{ "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "project": { "name": "PROJECT_NAME" }, "apps": [ { "root": "src", "outDir": "dist", "assets": [ "assets", "favicon.ico" ], "index": "index.html", "main": "main.ts", "polyfills": "polyfills.ts", "test": "test.ts", "tsconfig": "tsconfig.app.json", "testTsconfig": "tsconfig.spec.json", "prefix": "app", "styles": [ "styles.css" ], "scripts": [], "environmentSource": "environments/environment.ts", "environments": { "dev": "environments/environment.ts", "prod": "environments/environment.prod.ts" } } ], "e2e": { "protractor": { "config": "./protractor.conf.js" } }, "lint": [ { "project": "src/tsconfig.app.json" }, { "project": "src/tsconfig.spec.json" }, { "project": "e2e/tsconfig.e2e.json" } ], "test": { "karma": { "config": "./karma.conf.js" } }, "defaults": { "styleExt": "css", "component": {} } }También encontrará una copia de este json si crea un nuevo proyecto desde angular-cli .
Se solucionó el problema copiando el archivo .angular-cli.json en el nuevo directorio.
Por solicitud, más detalles:
Después de crear su proyecto, pero antes de moverlo a un directorio diferente, notará que se creó un archivo .angular-cli.json , visible desde la línea de comando a través de ls -al . Este archivo es necesario en el directorio raíz de su proyecto. Debe moverse allí a través mv .angular-cli.json . y debe agregarse al control de código fuente para que otros que clonen el proyecto tengan este archivo.
encontré la solución! :D
en mi caso, moví el proyecto a otro directorio, hay un archivo oculto llamado .angular-cli,
muestre el archivo oculto en el proyecto anterior y copie este archivo y péguelo en el nuevo destino.
esto es resuelto el problema para mí.