You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular从V9升级至V17后ng build命令报错求助

Angular 9 升级到 17.1.1 构建错误修复指南

以下是针对你遇到的每个构建错误的具体修复方案:

  • 问题根源:RouterModule 未在组件所属模块(或独立组件的依赖列表)中注册。
  • 修复步骤:
    • 若项目采用 NgModule 架构:在 app.module.ts 或组件所在的特性模块的 imports 数组中添加 RouterModule。全局路由用 RouterModule.forRoot(routes),特性模块路由用 RouterModule.forChild(routes)。
    • 若使用独立组件:在组件的 imports 数组中直接添加 RouterModule。

2. 'mat-icon' 不是已知元素

  • 问题根源:MatIconModule 未导入到当前模块/独立组件,或者 @angular/material 版本未同步升级到 17.x。
  • 修复步骤:
    • 先确认 @angular/material 版本为 17.x(可在 package.json 中查看),若版本不符,执行 npm install @angular/material@17.1.1 升级。
    • 在使用 mat-icon 的模块/独立组件的 imports 数组中添加 MatIconModule。

3. 找不到 exportAs 为 'matTableExporter' 的指令

  • 问题根源:mat-table-exporter 库版本不兼容 Angular 17,或未导入对应的模块。
  • 修复步骤:
    • 升级 mat-table-exporter 到兼容 Angular 17 的最新版本:npm install mat-table-exporter@latest。
    • 在使用该指令的模块/独立组件的 imports 数组中添加 MatTableExporterModule。

4. 无法绑定 hiddenColumns、fusePerfectScrollbarOptions 到 mat-table

  • 针对 hiddenColumns:
    • 若这是 Angular Material 表格的扩展属性,需确认是否导入了对应的表格扩展模块;若为自定义属性,需在组件类中定义 @Input() hiddenColumns: any[](根据实际业务调整类型)。
  • 针对 fusePerfectScrollbarOptions:
    • 确认 @fuse/components 或相关滚动条依赖已升级到适配 Angular 17 的版本,然后在模块/独立组件的 imports 数组中导入对应的 PerfectScrollbarModule 或指令模块。

额外排查要点

  • 核对 package.json 中所有依赖版本:确保 @angular/*、@angular/material、mat-table-exporter、@fuse/* 等核心依赖版本与 Angular 17.1.1 兼容。
  • 清理缓存后重新构建:执行 npm cache clean --force,删除 node_modules 和 package-lock.json,重新运行 npm install 和 ng build。
  • 若项目从 NgModule 切换到独立组件模式:确保 angular.json 中的构建入口配置正确,且组件已正确声明为独立组件(添加 standalone: true)。

内容的提问来源于stack exchange,提问作者Abhishek Negi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 08:24:52