升级我的angular-cli后,我得到以下错误
ERROR in Template parse errors:
Can't bind to 'index' since it isn't a known property of 'tag'. ("own)="handleKeydown($event, item)"
(onTagEdited)="onTagEdited.emit(item)"
[ERROR ->][index]="i"
[attr.tabindex]="readonly ? -1 : 0"
[class.readonly]="readonly""): TagInputComponent@16:13
ERROR in ./src/main.ts
Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in 'D:\xxxx\yyyy\eeeee\eeee\src'
@ ./src/main.ts 5:0-74
@ multi ./src/main.ts
当我运行ng build --prod
时发生此错误,并且在我运行ng build
时没有任何参数时工作正常,
答案 0 :(得分:40)
当您在角度2中运行ng build时,最新的angular-cli会自动运行--aot参数(提前编译),因此它正在尝试优化您的代码。您有一个尚未兼容优化的软件包。所以你需要更新你的包。很可能是app.module.ts中包含**forRoot()**
的软件包
我建议更新所有套餐。
更新软件包的简单方法是使用ncu npm软件包,如下所示,我从How do I correctly upgrade angular 2 (npm) to the latest version?
获取它安装
npm install -g npm-check-updates
用法
显示 ncu
ncu -u
重新编写package.json
并运行npm install
来更新您的包
如果以上操作不起作用,您可能需要更新代码才能获得合规性。请参阅下面的此网址,对您的代码进行更改。 https://medium.com/@isaacplmann/getting-your-angular-2-library-ready-for-aot-90d1347bcad
答案 1 :(得分:24)
使用:
ng build --env=prod
而不是:
ng build --prod
答案 2 :(得分:24)
我有同样的问题,我最终如何解决它是: 从node_modules中删除enhanced-resolve模块,然后运行
npm install enhanced-resolve@3.3.0
之后,aot版本按预期工作......
答案 3 :(得分:12)
面对这个问题的第二部分。
ERROR in ./src/main.ts
Can't resolve './$$_gendir/app/app.module.ngfactory'
通过将角度/ cli更新为角度4的<1.2来解决它
然后执行“ng build --prod”成功生成了生成版本。
答案 4 :(得分:2)
从Angular 6升级到7.1.4后出现相同的错误。我按照here中的说明进行操作。
返回的错误是:
ERROR in ./src/main.server.ts
Module not found: Error: Can't resolve './app/app.server.module.ngfactory'
尝试使用命令进行预渲染时。
ng run [my-project-name]:server
原因是我启用了非生产ready的Ivy Render。 通过删除行:
"angularCompilerOptions": {
"enableIvy": true
}
从tsconfig.json文件中,一切都恢复了正常。
答案 5 :(得分:0)
显然,这种无用且令人困惑的错误消息可能是由Angular AOT(预呈现)消耗的打字稿中的默认导出引起的。使用export default class
将导致任何版本的Angular出现此错误,并且当前不受支持。您必须更改为export class
。
要查看问题的当前状态并查看问题是否得到解决,请参阅https://github.com/angular/angular/issues/11402。在我写这篇文章时,这个问题已经开放了两年多了,但他们确实声称有一天会得到解决。
答案 6 :(得分:0)
For me, I haven't declared my newly created component in module.ts. It worked when I declared it. Check if any of your components are not declared in module.ts.