离子cordova版本类型'ModuleWithProviders'不是通用的

问题描述

嗨,我对Angular不太了解,找不到解决方案- 我正在研究Ionic Cordova项目,并且想更新Android API级别。 之后,我无法使用命令构建代码

ionic cordova build --release android

> ionic-app-scripts.cmd build --target cordova --platform android
[14:39:13]  ionic-app-scripts 3.2.4
[14:39:13]  build dev started ...
[14:39:13]  clean started ...
[14:39:13]  clean finished in 18 ms
[14:39:13]  copy started ...
[14:39:13]  deeplinks started ...
[14:39:13]  deeplinks finished in 337 ms
[14:39:13]  transpile started ...
[14:39:20]  typescript: {PROJECT_ROOT}/node_modules/@ionic/storage/index.d.ts,line: 5
            Type 'ModuleWithProviders' is not generic.

       L4:  export declare class IonicStorageModule {
       L5:      static forRoot(storageConfig?: StorageConfig): ModuleWithProviders<IonicStorageModule>;

[14:39:20]  typescript: {PROJECT_ROOT}/node_modules/@ionic/storage/storage.d.ts,line: 113
            An accessor cannot be declared in an ambient context.

     L112:  get driver(): string | null;
     L114:   * Reflect the readiness of the store.

[14:39:20]  ionic-app-script task: "build"
[14:39:20]  Error: Failed to transpile program
Error: Failed to transpile program
    at new BuildError ({PROJECT_ROOT}\node_modules\@ionic\app-scripts\dist\util\errors.js:16:28)
    at {PROJECT_ROOT}\node_modules\@ionic\app-scripts\dist\transpile.js:159:20
    at new Promise (<anonymous>)
    at transpileWorker ({PROJECT_ROOT}\node_modules\@ionic\app-scripts\dist\transpile.js:107:12)
    at Object.transpile ({PROJECT_ROOT}\node_modules\@ionic\app-scripts\dist\transpile.js:64:12)
    at {PROJECT_ROOT}\node_modules\@ionic\app-scripts\dist\build.js:109:82
[ERROR] An error occurred while running subprocess ionic-app-scripts.

        ionic-app-scripts.cmd build --target cordova --platform android exited with exit code 1.

我尝试过更新软件包,删除和安装节点模块,更新初始化脚本,但没有任何帮助。

这是我的包裹json

{
  "name": "{}","version": "0.0.1","author": "Ionic Framework","homepage": "http://ionicframework.com/","private": true,"scripts": {
    "clean": "ionic-app-scripts clean","build": "ionic-app-scripts build","lint": "ionic-app-scripts lint","ionic:build": "ionic-app-scripts build","ionic:serve": "ionic-app-scripts serve"
  },"dependencies": {
    "@angular/animations": "5.2.11","@angular/common": "5.2.11","@angular/compiler": "5.2.11","@angular/compiler-cli": "5.2.11","@angular/core": "5.2.11","@angular/forms": "5.2.11","@angular/http": "5.2.11","@angular/platform-browser": "5.2.11","@angular/platform-browser-dynamic": "5.2.11","@ionic-native/core": "^4.20.0","@ionic-native/firebase": "^4.20.0","@ionic-native/keyboard": "^4.20.0","@ionic-native/push": "^4.20.0","@ionic-native/splash-screen": "4.9.1","@ionic-native/status-bar": "4.9.1","@ionic/storage": "^2.3.1","cordova-android": "^8.1.0","cordova-ios": "^4.5.5","cordova-plugin-device": "^2.0.3","cordova-plugin-ionic-keyboard": "^2.2.0","cordova-plugin-ionic-webview": "^1.2.1","cordova-plugin-sms-receiver": "0.1.6","cordova-plugin-splashscreen": "^5.0.4","cordova-plugin-whitelist": "^1.3.4","ionic": "^5.4.16","ionic-angular": "3.9.2","ionic-plugin-keyboard": "^2.2.1","ionicons": "3.0.0","phonegap-plugin-push": "^2.3.0","rxjs": "5.5.11","sw-toolBox": "3.6.0","zone.js": "0.8.26"
  },"devDependencies": {
    "@ionic/app-scripts": "^3.2.4","typescript": "~2.6.2"
  },"description": "An Ionic project","cordova": {
    "plugins": {
      "cordova-plugin-whitelist": {},"cordova-plugin-device": {},"cordova-plugin-splashscreen": {},"cordova-plugin-ionic-webview": {},"cordova-plugin-ionic-keyboard": {},"phonegap-plugin-push": {
        "FCM_VERSION": "11.6.2"
      },"cordova-plugin-sms-receive": {},"cordova-plugin-sms-receiver": {}
    },"platforms": [
      "android"
    ]
  }
}

有人可以帮我吗?

解决方法

您的Angular和Ionic依赖项已经过时了,需要进行更新。

由于@ionic/storage使用的是最新的依赖项,因此发生了冲突,您的应用无法编译它。

您可以尝试将版本降级到v2.2.0或更低版本,然后重试。

npm i @ionic/storage@2.2.0 --save