在AOT Build

时间:2017-02-09 22:05:23

标签: angular kendo-ui-angular2

我有一个简单的应用程序,利用Angular2的Kendo UI控件。我也AOT编译我的应用程序。在我运行npm更新并更新控件之前,一切正常。

自更新以来AOT构建失败。特别是失败似乎与剑道角度输入组件有关。此外,npm开始不再干净利落。通过"干净地"我的意思是我应该能够发出一个运行命令,无缝地在应用程序的JIT / AOT版本之间跳转。然而,事实并非如此。我将尝试描述下面的情况:

部分工作版

安装了版本0.15.3的kendo-angular-inputs

的应用程序
  1. NPM Start(在发出AOT构建命令之前)

    成功,应用

  2. 停止lite-Server,运行:NPM AOT build

    成功,应用构建并投放

  3. 停止lite-Server,运行:NPM Start(在发出AOT构建命令后)

    错误

  4.   

    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

    的应用程序
    1. NPM Start(在发出AOT构建命令之前)

      成功,应用

    2. 停止lite-Server,运行:NPM AOT build

      错误

    3.   

      错误   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:   提供的参数与呼叫目标的任何签名都不匹配。

      1. 尝试并运行:NPM启动,因为AOT不起作用(在发出AOT构建命令后)

        错误

      2.   

        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编译。

        更多信息:

        1. 我根据angular.io cookbook
        2. 设置了AOT编译
        3. 我成功使用了kendo-angular-charts。 JIT / AOT版本运行良好。
        4. 我不确定我在npm更新之前运行的控件的版本。
        5. 我跳回到版本0.15.3只是因为版本0.18.5和0.18.4也给了我错误。
        6. 我不知道我是否真的在问一个问题,或者只是想指出kendo-angular-inputs组件可能有问题。

1 个答案:

答案 0 :(得分:0)

@progress/kendo-angular-inputs包有几个较新的版本可以解决几个AOT问题。

你可以尝试0.18.7 (2017-02-10)版本吗?它至少解决了与私有成员和不匹配的签名类型相关的问题。