2017-08-08 72 views
0

我使用的是的WebPack和AOT角4和建筑项目,但它给我这个错误:角4 + AOT的WebPack建设问题

ERROR in ng:///D:/proj/src/client/app/app.component.html (14,5): '$event' is declared but never used. 

我已经在plunker提出简化的项目副本:http://embed.plnkr.co/RxY2mhfhJmcBFKjG70f0/

从plunker

  1. 下载项目:

    您可以重现此问题与以下步骤https://plnkr.co/edit/RxY2mhfhJmcBFKjG70f0?p=info

  2. 在项目根npm i然后npm run build:clientnpm run build-v:client

如果更改src/client/app/app.component.html在第13行是这样的:

<li *ngFor="let hero of heroes" (click)="onSelect(hero, $event)" [class.selected]="hero === selectedHero"> 

错误就会消失。但显然这是一个不好的解决方案。

任何想法来解决这个问题?

我认为AoT以某种方式将模板编译为某种中间资源,并添加该变量。但我无法找到如何管理/防止/解决这个问题。

+0

显然你有一个'$事件'定义的地方,它没有被使用..但我没有看到你的plnkr。你确定你把正确的代码放在那里吗?该错误暗示了您的HTML中的某个内容“

”。 – Lansana

+0

@Lansana,我更新了我的问题来解释你的 –

+0

我非常确定这与正在使用的编译器/构建过程有关。有一个'$ event'为'(click)'创建,但是你不用它。这类似于在打字稿中声明一个变量而不使用它。我认为在这种情况下,您正在使用的编译器或构建过程会引发错误,并且可以证明这一点,因为如果使用'$ event',错误就会消失。您是否创建了自己的定制webpack构建配置,或者您是否使用Angular CLI? – Lansana

回答

0

问题出在src/client/tsconfig-aot.json。应该删除"noUnusedParameters": true,

感谢您的意见。它把我带到了正确的方向。

+0

很高兴我能帮到你。 – Lansana