首页 新闻 会员 周边

又遇 typescript module 解析问题 "Module not found"

0
悬赏园豆:30 [已解决问题] 解决于 2024-04-05 07:41

一个项目升级 angular 之后遇到的问题,从 angular 15 升级至 angular 17,typescript 从 4.8 升级至 5.4.3

./node_modules/@cnblogs/markdown-it-presets/dist/es2015/presets/index.mjs:1:0-37 - Error: Module not found: Error: Can't resolve 'markdown-it'

对应的 index.mjs 第1行代码是

import MarkdownIt from 'markdown-it';

这里的 markdown-it 对应的 npm 是 @cnblogs/markdown-it,是我们 fork markdown-it 仓库自己发布的 npm 包

问题补充:

终于定位到是下面的代码引起的,markdownItFactory 是在 @cnblogs/markdown-it-presets 中实现的

const html = markdownItFactory(
    Object.assign({}, defaultOpt, { codeHighlight: false })
).render(source);

解析 dist/es2015/presets/index.mjs 是因为在 @cnblogs/markdown-it-presets 的 package.json 中有下面的配置

{
    "exports": {     
        "./presets": {
            "types": "./dist/types/presets/index.d.ts",
            "require": "./dist/commonjs/presets/index.cjs",
            "default": "./dist/es2015/presets/index.mjs"
        }
    }
}
dudu的主页 dudu | 高人七级 | 园豆:31048
提问于:2024-04-03 22:25

在 tsconfig.json 中 compilerOptions 之下添加 "traceResolution": true 可以显示 module 解析日志

dudu 3个月前

@cnblogs/markdown-it-presets 采用的是这种方式 https://stackoverflow.com/a/72530967

dudu 3个月前
< >
分享
最佳答案
0

终于解决了!出现 "Error: Module not found: Error: Can't resolve 'markdown-it'" 错误是由于缺少 @types/markdown-it ,但由于 https://q.cnblogs.com/q/148661 中的问题,还需要安装 markdown-it@13.0.2,虽然项目中用的是 @cnblogs/markdown-it,并没有用到 markdown-it

npm i @types/markdown-it
npm i markdown-it@13.0.2
dudu | 高人七级 |园豆:31048 | 2024-04-05 07:35

为什么在 https://q.cnblogs.com/q/148661 之后会遇到这个问题?因为后来不再使用 markdown-it/lib/common/utils 中的 isString,而项目中就这一个地方用到 markdown-it,于是删除了 @types/markdown-itmarkdown-it@13.0.2

dudu | 园豆:31048 (高人七级) | 2024-04-05 07:41

@types/markdown-it@14.0.0 出来应该就不需要安装 markdown-it@13.0.2

dudu | 园豆:31048 (高人七级) | 2024-04-05 07:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册