从Angular 4升级到5:" NodeInvocationException:没有PlatformRef的提供者!"

时间:2017-11-13 17:13:41

标签: node.js angular npm asp.net-core angular5

我已将应用程序从Angular 4.2升级到5,但出现此错误:  unhandled exception occurred while processing the request,更具体地说:

  

NodeInvocationException:没有PlatformRef的提供程序!错误:没有   PlatformRef的提供者!在injectionError   (E:\ MyApp的\ ClientApp \ DIST \ vendor.js:12066:90)

该应用还使用webpackASP.NET Core

我已安装node v9.1typescript 2.6.1

我还使用以下命令更新了package.json

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

我还使用HttpClient代替Http

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

  }

如果我降级Angular 4,该应用程序运行良好,我的思路中是否有任何错误的做法?

2 个答案:

答案 0 :(得分:18)

我找到了解决方案: 我已经使用了这个Angular 5 Asp Core template

我已将家属更新为最新的角度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

我已重新编译webpack --config webpack.config.vendor.js(必须全局安装webpack:npm install -g webpack@2.5.1

我用我的项目文件替换了ClientApp / ASP文件 在app.module

中更改了Manully
import { HttpModule } from '@angular/http';

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

在服务文件中而不是Http我使用了HttpClient

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

答案 1 :(得分:2)

您可以尝试两种不同的事情:

1)首先在NgModule的导入数组中导入HttpClientModule。(如果在组件中使用HttpClient)

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

注意:升级您的应用程序:https://onlyforcoder.blogspot.in/2017/11/angular-5-upgrade-your-project-To-Angular5.html