问题描述
嗨,我对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