问题描述
我正在尝试将我的ionic 4角度应用程序更新为ionic5.我使用了以下链接:
I am trying to update my angular ionic 4 app to ionic 5. I used the following link:
https://ionicframework.com/docs/reference/migration
npm install @ionic/angular@latest @ionic/angular-toolkit@latest --save
尝试进行实时重载时出现以下错误:
I am getting the following error when trying to do a livereload:
ionic cordova run android -l
[INFO] Hardware device(s) found for android. Using --device.
> ng run app:ionic-cordova-serve --host=localhost --port=8100 --platform=android
[ng] An unhandled exception occurred: Invalid options object. Copy Plugin has been initialized using an options object that does not match the API schema.
[ng] - options[0] misses the property 'patterns'. Should be:
[ng] [non-empty string | object { from, to?, context?, globOptions?, toType?, force?, flatten?, transform?, cacheTransform?, transformPath?, noErrorOnMissing? }, ...] (should not have fewer than 1 item)
[ng] See "/private/var/folders/1k/dwr2csfs5lnfrs7xq7520v_w0000gq/T/ng-OE3Uo3/angular-errors.log" for further details.
[ERROR] ng has unexpectedly closed (exit code 127).
The Ionic CLI will exit. Please check any output above for error details.
然后我跑离子医生看是否有任何问题.没有.
I then ran ionic doctor to see if there were any issues. There were not.
有趣的是,我可以成功构建一个.apk并使用以下命令运行它ionic cordova build android --prod --release
What is interesting is that I can successfully build an .apk and run it usingionic cordova build android --prod --release
即使在成功构建之后,livereload命令仍然会失败,并出现相同的错误.
Even after a successful build the livereload command still fails with the same error.
ionic cordova run android -l
该错误确实指向日志文件,以获取其他信息.这是我发现的:
The error does point to a log file for additional information. This is what I found:
error] ValidationError: Invalid options object. Copy Plugin has been initialized using an options object that does not match the API schema.
- options[0] misses the property 'patterns'. Should be:
[non-empty string | object { from, to?, context?, globOptions?, toType?, force?, flatten?, transform?, cacheTransform?, transformPath?, noErrorOnMissing? }, ...] (should not have fewer than 1 item)
at validate (/Users/b/ionic5_apps/ionic5_b-master/node_modules/copy-webpack-plugin/node_modules/schema-utils/dist/validate.js:96:11)
at new CopyPlugin (/Users/b/ionic5_apps/ionic5_b-master/node_modules/copy-webpack-plugin/dist/index.js:24:30)
at Object.webpackConfiguration (/Users/b/ionic5_apps/ionic5_b-master/node_modules/@ionic/angular-toolkit/builders/cordova-serve/index.js:55:39)
at setup (/Users/b/ionic5_apps/ionic5_b-master/node_modules/@angular-devkit/build-angular/src/dev-server/index.js:80:46)
at processTicksAndRejections (internal/process/task_queues.js:97:5
它指向许多node_modules:
It points to a number of node_modules:
node_modules/copy-webpack-plugin - version - 6.0.3
node_modules/@ionic/angular-toolkit
node_modules/@angular-devkit
我的离子信息是:
Ionic CLI : 6.11.0 (/Users/b/.nvm/versions/node/v12.18.3/lib/node_modules/@ionic/cli)
Ionic Framework : @ionic/angular 5.3.1
@angular-devkit/build-angular : 0.803.29
@angular-devkit/schematics : 8.3.29
@angular/cli : 8.3.29
@ionic/angular-toolkit : 2.3.1
Cordova:
Cordova CLI : 10.0.0
Cordova Platforms : android 8.1.0
Cordova Plugins : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.2.1, (and 10 other plugins)
Utility:
cordova-res : 0.15.1
native-run : 1.0.0
System:
ios-sim : 8.0.2
NodeJS : v12.18.3 (/Users/b/.nvm/versions/node/v12.18.3/bin/node)
npm : 6.14.7
OS : macOS Catalina
Xcode : Xcode 11.3.1 Build version 11C504
如果我执行过时的npm,则会看到以下内容:
If I do a npm outdated I see the following:
Package Current Wanted Latest Location
@angular-devkit/architect 0.803.29 0.803.29 0.1000.6 b
@angular-devkit/build-angular 0.803.29 0.803.29 0.1000.6 b
@angular-devkit/core 8.3.29 8.3.29 10.0.6 b
@angular-devkit/schematics 8.3.29 8.3.29 10.0.6 b
@angular/cli 8.3.29 8.3.29 10.0.6 b
@angular/common 8.2.14 8.2.14 10.0.11 b
@angular/compiler 8.2.14 8.2.14 10.0.11 b
@angular/compiler-cli 8.2.14 8.2.14 10.0.11 b
@angular/core 8.2.14 8.2.14 10.0.11 b
@angular/forms 8.2.14 8.2.14 10.0.11 b
@angular/language-service 8.2.14 8.2.14 10.0.11 b
@angular/platform-browser 8.2.14 8.2.14 10.0.11 b
@angular/platform-browser-dynamic 8.2.14 8.2.14 10.0.11 b
@angular/router 8.2.14 8.2.14 10.0.11 b
@ionic-native/app-version 5.27.0 5.28.0 5.28.0 b
@ionic-native/ble 5.27.0 5.28.0 5.28.0 b
@ionic-native/core 5.27.0 5.28.0 5.28.0 b
@ionic-native/diagnostic 5.27.0 5.28.0 5.28.0 b
@ionic-native/file 5.27.0 5.28.0 5.28.0 b
@ionic-native/in-app-browser 5.27.0 5.28.0 5.28.0 b
@ionic-native/insomnia 5.27.0 5.28.0 5.28.0 b
@ionic-native/splash-screen 5.27.0 5.28.0 5.28.0 b
@ionic-native/sqlite 5.27.0 5.28.0 5.28.0 b
@ionic-native/status-bar 5.27.0 5.28.0 5.28.0 b
@ngrx/effects 8.6.0 8.6.0 10.0.0 b
@ngrx/store 8.6.0 8.6.0 10.0.0 b
@ngx-translate/core 11.0.1 11.0.1 13.0.0 b
@ngx-translate/http-loader 4.0.0 4.0.0 6.0.0 b
@types/jasmine 3.5.11 3.5.12 3.5.12 b
@types/node 13.13.15 13.13.15 14.6.0 b
codelyzer 5.2.2 5.2.2 6.0.0 b
cordova-android 8.1.0 8.1.0 9.0.0 b
cordova-ios 5.1.1 5.1.1 6.1.0 b
cordova-plugin-inappbrowser 3.2.0 3.2.0 4.0.0 b
cordova-plugin-ionic-webview 4.2.1 4.2.1 5.0.0 b
cordova-plugin-splashscreen 5.0.4 5.0.4 6.0.0 b
cordova-sqlite-storage 4.0.0 4.0.0 5.0.1 b
cordova.plugins.diagnostic 5.0.2 5.0.2 6.0.2 b
eslint 6.8.0 6.8.0 7.7.0 b
jasmine-spec-reporter 4.2.1 4.2.1 5.0.2 b
karma 4.4.1 4.4.1 5.1.1 b
karma-coverage-istanbul-reporter 2.1.1 2.1.1 3.0.3 b
karma-jasmine 3.3.1 3.3.1 4.0.1 b
lodash 4.17.19 4.17.20 4.17.20 b
protractor 5.4.4 5.4.4 7.0.0 b
rxjs 6.6.0 6.6.2 6.6.2 b
tslib 1.13.0 1.13.0 2.0.1 b
tslint 5.20.1 5.20.1 6.1.3 b
typescript 3.5.3 3.9.7 4.0.2 b
zone.js 0.9.1 0.9.1 0.11.1 b
更新:然后,我创建了一个全新的基于角度的Ionic 5项目.
UPDATE:I then created a brand new angular based Ionic 5 project.
然后我使用以下命令添加了cordova android平台:
I then added the cordova android platform with the following command:
ionic cordova platform add android
我运行以下命令进行实时重载:
I run the following command to do a livereload:
ionic cordova run android -l
仍然看到错误.
我创建了一个仓库 https://github.com/ASHBAW/test_livereload
还有其他人看到吗?
回购协议是否可以在您的系统上工作?
Does the repo work on your system?
任何帮助将不胜感激.
谢谢
推荐答案
对我来说,解决方案是将@ionic/angular-toolkit
回滚到以前的版本,似乎与v2.3.1
有关.
The solution (workaround) for me was to rollback the @ionic/angular-toolkit
to the previous version, seems to be something up with v2.3.1
.
npm i @ionic/angular-toolkit@2.3.0 -E -D
更新
发布的新版本的@ionic/angular-toolkit
似乎可以解决此问题,请尝试安装最新版本:
New version of @ionic/angular-toolkit
released which appears to address this problem, try installing the latest instead:
npm i @ionic/angular-toolkit@latest -D
这篇关于从Ionic 4更新到Ionicova 5 android livereload错误-复制插件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!