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

Angular v13升级v14报错Cannot find module '@angular/cdk/dialog'

Angular 13升14后@angular/cdk/dialog模块找不到报错修复

问题场景

执行以下命令将Angular项目从v13升级到v14:

ng update @angular/core@14 @angular/cli@14
ng update @angular/material@14

升级完成后项目启动报错,核心错误信息如下:

./node_modules/@angular/material/fesm2015/dialog.mjs:1:0-93 - Error: Module not found: Error: Package path ./dialog is not exported from package D:\projectName\node_modules\@angular\cdk (see exports field in D:\projectName\node_modules\@angular\cdk\package.json)

Error: node_modules/@angular/material/dialog/index.d.ts:3:36 - error TS2307: Cannot find module '@angular/cdk/dialog' or its corresponding type declarations.
3 import { CdkDialogContainer } from '@angular/cdk/dialog';

查看package.json依赖配置,@angular/cdk、@angular/material等核心包均标注为^14.0.1,表面看版本一致。

根本原因

本地实际安装的@angular/cdk版本低于14.0.0,和14版本的@angular/material不兼容。
Angular Material 14.x对Dialog模块做了重构,底层依赖@angular/cdk 14.0.0才新增的@angular/cdk/dialog入口。package.json里的^14.0.1是语义化版本范围,不代表node_modules里实际安装的就是对应版本:升级过程中锁文件未更新、npm缓存异常、升级流程中途中断、依赖版本冲突等原因,都会导致本地残留13.x版本的@angular/cdk,旧版本cdk没有导出dialog路径,就会触发上述报错。

修复步骤

按顺序执行以下操作:

  • 清理旧依赖和缓存
# 删除本地依赖文件夹
rm -rf node_modules
# 删除对应包管理工具的锁文件,npm对应package-lock.json,yarn对应yarn.lock,pnpm对应pnpm-lock.yaml
# npm用户执行
rm package-lock.json
# 清除包缓存
npm cache clean --force
  • 精确安装匹配版本的@angular/cdk,避免语义化版本拉取到不兼容包
# npm用户执行
npm install @angular/cdk@14.0.1 --save-exact
npm install

# yarn用户执行对应命令
# yarn add @angular/cdk@14.0.1 --exact
# yarn install
  • 校验安装版本
    执行命令查看本地实际安装的cdk版本:
npm ls @angular/cdk

确认输出的版本号为14.0.1,无invalid、版本冲突类提示即可。

  • 重新启动项目
ng serve

补充:如果上述操作完成后仍报错,检查项目是否自定义了webpack配置、是否引入了第三方组件库强制依赖低版本@angular/cdk,将对应依赖升级到兼容Angular14的版本即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 23:09:18