Actualicé una aplicación de Angular 4.2 a 5, pero obtuve este error: unhandled exception occurred while processing the request, más específicamente:

NodeInvocationException: ¡No hay proveedor para PlatformRef! Error: ¡No hay proveedor para PlatformRef! en injectionError (e: \ myapp \ ClientApp \ dist \ vendor.js: 12066: 90)

La aplicación también usa paquete web y ASP.NET Core.

He instalado node v9.1 y typescript 2.6.1.

También he actualizado package.json, con el comando:

npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest typescript@latest 

Y luego, corrió la siguiente:

 npm install --save-dev @ngtools/webpack@latest

También usé HttpClient en lugar de Http:

import { HttpClient } from '@angular/common/http'; 
.....
 getThings() {
        return this.http.get('/api/things');

  }

Si vuelvo a degradar Angular 4, la aplicación funciona bien, ¿hay algo en mi línea de pensamiento que se haya hecho incorrectamente?

4
mrapi 13 nov. 2017 a las 20:13

2 respuestas

La mejor respuesta

Encontré una solución de resolución: He utilizado esta plantilla Angular 5 Asp Core

Actualicé las dependencias a la última versión de angular 5: npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest typescript@latest

npm install --save-dev @ngtools/webpack@latest

He recompilado webpack --config webpack.config.vendor.js (debe tener el paquete web instalado globalmente: npm install -g webpack@2.5.1)

Reemplacé los archivos ClientApp / ASP con mis archivos de proyecto Manully cambió en app.module:

import { HttpModule } from '@angular/http';

Para

import { HttpClientModule } from '@angular/common/http';

En archivos de servicios en lugar de Http que he usado HttpClient:

import { HttpClient } from '@angular/common/http'; 
18
mrapi 1 may. 2018 a las 07:58

Dos cosas diferentes, que puedes probar:

1) primero importe HttpClientModule en la matriz de importación de su NgModule (si está utilizando HttpClient en su componente)

2) https://stackoverflow.com/a/39206501/2810015

Nota: para actualizar su aplicación: https : //onlyforcoder.blogspot.in/2017/11/angular-5-upgrade-your-project-To-Angular5.html

2
Nimish goel 13 nov. 2017 a las 18:27