如何在离子 3 中使用角度 6?

Posted

技术标签:

【中文标题】如何在离子 3 中使用角度 6?【英文标题】:How to use angular 6 in ionic 3? 【发布时间】:2018-11-12 20:46:21 【问题描述】:

我在 Angular 5.2 上有一个 Ionic 3 应用程序。我正在尝试更新到 Angular 6。我已经按照 HttpClientNgModule 的升级指南进行操作。我现在遇到的问题是ionic-native

我安装了ionic-native V5,它正在使用rxjs v6(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  

我收到多个错误

找不到名称“设备”

类型参数'声明:(typeof MyApp)[];进口:(ModuleWithProviders | typeof HttpClientModule | typeo...' 不可分配给“NgModule”类型的参数。 财产“提供者”的类型不兼容。 类型 '(DeviceOriginal ' 不可分配给类型 'Provider[]'。 类型“DeviceOriginal”不可分配给类型“Provider”。 类型“DeviceOriginal”不可分配给类型“Provider”。 类型“DeviceOriginal”不可分配给类型“ClassProvider”。 “DeviceOriginal”类型中缺少属性“provide”。

问题是:ionic 3 是否可以与 angular 6 一起使用?

【问题讨论】:

好像你的导入不正确ionicframework.com/docs/native/device/#usage,你能不能试着把它改成import Device from '@ionic-native/device'; 谢谢,但实际上,这就是 v5 的导入方式。请看这个github.com/ionic-team/ionic-native/tree/v5 【参考方案1】:

到目前为止,唯一对我有用的是将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"
  

【讨论】:

【参考方案2】:

正如 Ionic 论坛上的一篇帖子所暗示的那样,Ionic 3.x 未使用 Angular 6.x 进行测试,因此未得到官方支持。

https://forum.ionicframework.com/t/upgrading-to-angular-6/131121/5

在我看来,最好等待并更新到 Ionic 4.x。

【讨论】:

以上是关于如何在离子 3 中使用角度 6?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用具有离子和角度的照片相机在firebase中同时保存多个图像

在离子中将角度 5 降级为 4.3.3 [重复]

如何在创建离子应用程序时指定角度版本

如何在角度/离子应用程序中显示表情符号

如何在离子框架的控制器中注入角度服务?

如何在离子应用程序中使用库而不将其发布到 npm