Angular 7编译报错:未找到AppModule的NgModule元数据求助
问题修复方案
1. 修正tsconfig.app.json的baseUrl配置
你当前tsconfig.app.json中强制将baseUrl设为"",会覆盖父级tsconfig.json中./src的baseUrl配置,导致@app/*、@env/*的路径别名解析失效,main.ts通过别名导入AppModule时无法正确读取文件内容,自然提取不到NgModule元数据。
将tsconfig.app.json的compilerOptions中的baseUrl修改为:
"baseUrl": "./"
其余配置保持不变即可。
2. 补全AppModule的接口实现
你的AppModule声明了implements OnInit,但代码中没有实现对应的ngOnInit()方法,AOT编译提取元数据时会因为接口实现不完整触发异常。两种处理方式二选一:
- 直接删除AppModule类声明后的
implements OnInit语句 - 在类中补全空的ngOnInit方法:
ngOnInit() {}
3. 修正依赖放置位置
typescript属于构建工具依赖,你现在把它放在了生产依赖dependencies中,建议移到devDependencies下,避免冗余依赖影响构建逻辑。
4. 对齐构建工具版本
你当前@angular-devkit/build-angular版本为0.11.4,和@angular/cli@7.1.1版本不匹配,建议将build-angular的版本固定为0.11.1,和cli版本保持一致,避免构建工具版本兼容问题。
修复完成后执行以下命令重新构建:
# 清理旧依赖 rm -rf node_modules package-lock.json npm cache clean --force # 重装依赖 npm install # 执行生产构建 npm run build-prod
内容的提问来源于stack exchange,提问作者James L.
相关产品推荐
相关产品推荐

