Angular6升级至8时常见报错及解决方法如下:需将polyfills.ts中reflect路径改为core-js/es/reflect;卸载不兼容的@angular/http并删除其依赖;注释掉style.scss中的KendoCSS并在angular.json中重新引入;确保TypeScript版本≥3.4。以上四点是关键,解决后即可顺利升级。
在升级Angular 8项目时,依赖或API变更导致的编译报错并不罕见。下面整理了Angular 8升级过程中几个常见问题的报错信息与对应解法,希望能帮你少走弯路。
报错信息如下
长期稳定更新的攒劲资源: >>>点此立即查看<<<
ERROR in ./src/polyfills.ts
Module not found: Error: Can't resolve 'core-js/es7/reflect' in 'E:AJupdate_to8LibraryDemoteleriksrc'
解决方案
import ‘core-js/es7/reflect';
替换为
import 'core-js/es/reflect'
报错信息如下
npm WARN @angular/http@7.2.15 requires a peer of @angular/core@7.2.15 but none is installed. You must install peer dependencies yourself.
Angular 8已不再支持@angular/http,因此可以将其删除。
执行
PM>npm uninstall @angular/http
如果package.json中还有@angular/http,请手动删除,并执行一遍下方代码
npm i

这种报错通常是因为Kendo的主题包引用方式发生了变化。新版本的主题包需要通过angular.json来引用。
解决方法如下
(1)将src/style.scss文件中的引用注释掉
// @import "~@progress/kendo-theme-default/scss/all";
(2)在angular.json中添加主题包的引用
"styles": [
"src/styles.scss",
"node_modules/@progress/kendo-theme-default/dist/all.css"
],
重新启动程序即可解决问题。
报错信息如下
@angular/compiler-cli@8.0.3 requires a peer of typescript@>=3.4 <3.5 but none is installed. You must install peer dependencies yourself.
解决方案
npm i typescript@3.4.3
建议使用3.4.3版本。
以上几个问题是在Angular 8升级过程中比较典型的,按照对应步骤基本都能解决。需要注意的是,版本依赖的兼容性处理是升级过程中的关键环节,遇到类似报错时,优先确认对应包的版本是否匹配Angular 8的要求。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述