我在Angular 5.2上有一个Ionic 3应用程序。我正在尝试更新为角度6.我已经按照HttpClient
和NgModule
的升级指南进行了操作。我现在遇到的问题是ionic-native
。
我安装了使用ionic-native
v6的rxjs
V5(angular6要求并且与先前版本不兼容)。
这是我的app.module.ts
文件
import { Device } from '@ionic-native/device/ngx';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular'
import { BrowserModule } from '@angular/platform-browser'
import { HttpClientModule } from '@angular/common/http'
@NgModule({
declarations: [
MyApp,
],
imports: [
BrowserModule,
HttpClientModule,
IonicModule.forRoot(MyApp),
IonicStorageModule.forRoot(),
],
bootstrap: [IonicApp],
entryComponents: [
MyApp
],
providers: [
Device
]
})
export class AppModule { }
我收到多个错误
找不到名称'设备'
类型的参数'{declarations:(typeof MyApp)[];导入:( ModuleWithProviders | typeof HttpClientModule | typeo ...'不能分配给'NgModule'类型的参数。 属性“提供者”的类型是不兼容的。 类型'(DeviceOriginal'不能分配给'Provider []'类型。 类型'DeviceOriginal'不能分配给'Provider'类型。 类型'DeviceOriginal'不能分配给'Provider'类型。 类型'DeviceOriginal'不能分配给'ClassProvider'类型。 'DeviceOriginal'类型中缺少属性'provide'。
问题是:离子3能否与角6一起工作?
答案 0 :(得分:4)
到目前为止,对我来说唯一有效的方法是将ionic-native
保留为4.10.0
版本,并安装了rxjs-compat
。
我认为进一步行动还为时过早。这是package.json
"dependencies": {
"@angular/common": ">=6.0.9",
"@angular/compiler": ">=6.0.9",
"@angular/compiler-cli": ">=6.0.9",
"@angular/core": ">=6.0.9",
"@angular/forms": ">=6.0.9",
"@angular/http": ">=6.0.9",
"@angular/platform-browser": ">=6.0.9",
"@angular/platform-browser-dynamic": ">=6.0.9",
"@angular/pwa": ">=0.6.8",
"@angular/service-worker": ">=6.0.9",
"@ionic-native/core": ">=4.10.0",
"ionic-angular": ">=3.9.2",
"purify-css": ">=1.2.5",
"rxjs": "^6.2.2",
"rxjs-compat": ">=6.2.2",
"zone.js": ">=0.8.26"
}
答案 1 :(得分:2)
就像在Ionic论坛上的帖子所建议的那样,Ionic 3.x尚未经过Angular 6.x的测试,因此未得到正式支持。
https://forum.ionicframework.com/t/upgrading-to-angular-6/131121/5
我认为最好等待并更新到Ionic 4.x。