将一个项目从 angular 15 升级到 angular 17 遇到的问题,下面的 import 代码
import { isString } from 'markdown-it/lib/common/utils';
在 build 时报错
Module not found: Error: Can't resolve 'markdown-it/lib/common/utils'
报错是在运行 npm run build 时出现的,而在 vscode 中编辑对应的代码文件并没有出现错误提示
对应的 utils.d.ts 文件在 node_modules\@types\markdown-it\lib\common 中
对应的 npm 包是 @types/markdown-it
4月3日更新:新建一个 angular 17 项目,安装 npm 包 @types/markdown-it,调用 isString 方法,可以重现这个问题
看来是 @types/markdown-it 与 markdown-it 版本不一致引起的
新建的 angular 17 项目中使用的都是最新版,@types/markdown-it 版本是 13.0.7,markdown-it 版本是 14.1.0,将 markdown-it 降级为 13.0.2,问题消失
的确就是最新版的 @types/markdown-it 与最新版的 markdown-it 不兼容引起的
从 angular 15 升级到 angular 17 的项目安装 markdown-it 13 之后问题也解决了
npm i markdown-it@13.0.2
等 @types/markdown-it@14.0.0 出来应该就不需要安装 markdown-it@13.0.2