我有一个简单的应用程序,利用Angular2的Kendo UI控件。我也AOT编译我的应用程序。在我运行npm更新并更新控件之前,一切正常。
自更新以来AOT构建失败。特别是失败似乎与剑道角度输入组件有关。此外,npm开始不再干净利落。通过"干净地"我的意思是我应该能够发出一个运行命令,无缝地在应用程序的JIT / AOT版本之间跳转。然而,事实并非如此。我将尝试描述下面的情况:
部分工作版
安装了版本0.15.3的kendo-angular-inputs
的应用程序NPM Start(在发出AOT构建命令之前)
成功,应用
停止lite-Server,运行:NPM AOT build
成功,应用构建并投放
停止lite-Server,运行:NPM Start(在发出AOT构建命令后)
错误
aot/node_modules/@progress/kendo-angular-inputs/dist/es/numerictextbox/numerictextbox.component.ngfactory.ts(203,41): 错误TS2341:Property' widgetClass'是私人的,只能访问 在班级' NumericTextBoxComponent'。 aot/node_modules/@progress/kendo-angular-inputs/dist/es/numerictextbox/numerictextbox.component.ngfactory.ts(208,41): 错误TS2341:属性' numericClass'是私人的,只能访问 在班级' NumericTextBoxComponent'。 aot/node_modules/@progress/kendo-angular-inputs/dist/es/numerictextbox/numerictextbox.component.ngfactory.ts(242,48): 错误TS2445:Property' hostBlur'受保护且只能访问 在班级' NumericTextBoxComponent'及其子类。 aot/node_modules/@progress/kendo-angular-inputs/dist/es/numerictextbox/numerictextbox.component.ngfactory.ts(490,46): 错误TS2341:属性'焦点'是私人的,只能在 class' NumericTextBoxComponent'。 AOT / node_modules / @进展/剑术-角输入/ node_modules / @进展/剑术-角国际/ DIST / ES / intl.module.ngfactory.ts(28122): 错误TS2339:属性'字符串'类型' typeof上不存在 " C:/ 0 /健康/控制板-精简版/ node_modules / @进展/剑术-角输入/ node_modules / @ PROG ...'
此时我唯一能做的就是运行应用程序的AOT版本。除非我删除以下文件,否则JIT版本将无法运行(我认为这些是AOT编译中引用了kendo-angular-inputs组件的所有文件):
AOT / APP
AOT / @ progress
AOT / @ Telerik的
非工作版
安装了0.18.6版本的kendo-angular-inputs
的应用程序NPM Start(在发出AOT构建命令之前)
成功,应用
停止lite-Server,运行:NPM AOT build
错误
错误 C:/Dashboard-lite/aot/node_modules/@progress/kendo-angular-inputs/dist/es/slider/slider-ticks.component.ngfactory.ts:87:7: 提供的参数与呼叫目标的任何签名都不匹配。错误 在 C://Dashboard-lite/aot/node_modules/@progress/kendo-angular-inputs/dist/es/slider/slider.component.ngfactory.ts:207:7: 提供的参数与呼叫目标的任何签名都不匹配。
尝试并运行:NPM启动,因为AOT不起作用(在发出AOT构建命令后)
错误
aot/node_modules/@progress/kendo-angular-inputs/dist/es/maskedtextbox/maskedtextbox.component.ngfactory.ts(275,35): 错误TS2346:提供的参数与任何调用签名都不匹配 目标。 aot/node_modules/@progress/kendo-angular-inputs/dist/es/maskedtextbox/maskedtextbox.component.ngfactory.ts(279,35): 错误TS2346:提供的参数与任何调用签名都不匹配 目标。 aot/node_modules/@progress/kendo-angular-inputs/dist/es/maskedtextbox/maskedtextbox.component.ngfactory.ts(283,35): 错误TS2346:提供的参数与任何调用签名都不匹配 目标。 aot/node_modules/@progress/kendo-angular-inputs/dist/es/numerictextbox/numerictextbox.component.ngfactory.ts(195,41): 错误TS2341:Property' widgetClass'是私人的,只能访问 在班级' NumericTextBoxComponent'。 aot/node_modules/@progress/kendo-angular-inputs/dist/es/numerictextbox/numerictextbox.component.ngfactory.ts(200,41): 错误TS2341:属性' numericClass'是私人的,只能访问 在班级' NumericTextBoxComponent'。 aot/node_modules/@progress/kendo-angular-inputs/dist/es/numerictextbox/numerictextbox.component.ngfactory.ts(214,48): 错误TS2445:Property' hostBlur'受保护且只能访问 在班级' NumericTextBoxComponent'及其子类。 aot/node_modules/@progress/kendo-angular-inputs/dist/es/slider/slider-ticks.component.ngfactory.ts(87.7): 错误TS2346:提供的参数与任何调用签名都不匹配 目标。 aot/node_modules/@progress/kendo-angular-inputs/dist/es/slider/slider.component.ngfactory.ts(207,7): 错误TS2346:提供的参数与任何调用签名都不匹配 目标
同样,此时我必须删除相同的AOT文件才能运行JIT版本。我不能AOT编译。
更多信息:
答案 0 :(得分:0)
@progress/kendo-angular-inputs
包有几个较新的版本可以解决几个AOT问题。
你可以尝试0.18.7 (2017-02-10)
版本吗?它至少解决了与私有成员和不匹配的签名类型相关的问题。