最近,我和青柠决定给叶绘WordPress主题前台投稿系统里加个 Markdown 编辑器,看中了优雅又轻量的 Vditor。满怀期待准备开搞,心想:“先直接跑个官方编译,能有什么问题呢?”
“技术宅”遇上了“哲学命题”
最近,我和青柠决定给叶绘WordPress主题前台投稿系统里加个 Markdown 编辑器,看中了优雅又轻量的 Vditor。满怀期待准备开搞,心想:“先直接跑个官方编译,能有什么问题呢?”
Webpack:不能跑。

我:为啥?
Webpack:不告诉你~
我:???

这时候的心情,真的有种“刚开盒子就爆炸”的魔幻体验——啥都没改,啥都没碰,就这样被迎头痛击了。这不叫开发,这叫被生活毒打。
Webpack 报错现场更离谱,甩下一句:
webpack 5.98.0 compiled with 3 errors in 32147 ms错误日志
Node.js v22.14.0
PS C:\Users\19928\Downloads\vditor-3.10.9 (2)\vditor-3.10.9> npm start
> vditor@3.10.9 start
> webpack serve --config webpack.start.js
<i> Proxy created: /api -> http://localhost:8080
<i> Proxy rewrite rule created: "^/api" ~> ""
<i> Proxy created: /ld246 -> https://ld246.com
<i> Proxy rewrite rule created: "^/ld246" ~> ""
<i> Project is running at:
<i> Loopback: http://localhost:9001/, http://[::1]:9001/
<i> On Your Network (IPv4): http://192.168.23.1:9001/
<i> Content not from webpack is served from 'C:\Users\19928\Downloads\vditor-3.10.9 (2)\vditor-3.10.9' directory
<i> wait until bundle finished: /
assets by path js/ 20.1 MiB 386 assets
assets by path ../../dist/ 34.1 KiB 110 assets
assets by path images/ 69.6 KiB
assets by path images/emoji/*.png 52.9 KiB 16 assets
+ 3 assets
assets by path *.js 3.66 MiB
asset comment.js 1.1 MiB (name: comment.js)
+ 3 assets
assets by path ./*.html 19.9 KiB
asset ./render.html 6.73 KiB
+ 3 assets
assets by path css/content-theme/*.css 12.9 KiB
asset css/content-theme/ant-design.css 4.77 KiB
+ 3 assets
asset types/index.d.ts 26.1 KiB
runtime modules 110 KiB 52 modules
modules by path ./src/ 644 KiB
modules by path ./src/ts/ 575 KiB 108 modules
modules by path ./src/*.ts 24.8 KiB 2 modules
modules by path ./src/assets/less/*.less 44.6 KiB 2 modules
modules by path ./node_modules/ 193 KiB
modules by path ./node_modules/webpack-dev-server/client/ 86.9 KiB 8 modules
modules by path ./node_modules/webpack/hot/*.js 5.2 KiB 4 modules
+ 5 modules
modules by path ./demo/*.js 15.1 KiB
./demo/index.js 2.9 KiB
./demo/render.js 2.77 KiB
./demo/jest-puppeteer.js 4.6 KiB
./demo/comment.js 4.83 KiB
ERROR in C:\Users\19928\Downloads\vditor-3.10.9 (2)\vditor-3.10.9\src\ts\undo\index.ts
./src/ts/undo/index.ts 20:17-48
ERROR in C:\Users\19928\Downloads\vditor-3.10.9 (2)\vditor-3.10.9\src\ts\undo\index.ts(20,18)
TS2749: 'DiffMatchPatch.diff_match_patch' refers to a value, but is being used as a type here. Did you mean 'typeof DiffMatchPatch.diff_match_patch'?
@ ./src/index.ts 42:0-39 473:31-35
@ ./demo/comment.js 1:0-34 94:20-26
ERROR in C:\Users\19928\Downloads\vditor-3.10.9 (2)\vditor-3.10.9\src\ts\undo\index.ts
./src/ts/undo/index.ts 139:35-40
ERROR in C:\Users\19928\Downloads\vditor-3.10.9 (2)\vditor-3.10.9\src\ts\undo\index.ts(139,36)
TS7006: Parameter 'patch' implicitly has an 'any' type.
@ ./src/index.ts 42:0-39 473:31-35
@ ./demo/comment.js 1:0-34 94:20-26
ERROR in C:\Users\19928\Downloads\vditor-3.10.9 (2)\vditor-3.10.9\src\ts\undo\index.ts
./src/ts/undo/index.ts 140:37-41
ERROR in C:\Users\19928\Downloads\vditor-3.10.9 (2)\vditor-3.10.9\src\ts\undo\index.ts(140,38)
TS7006: Parameter 'diff' implicitly has an 'any' type.
@ ./src/index.ts 42:0-39 473:31-35
@ ./demo/comment.js 1:0-34 94:20-26
3 errors have detailed information that is not shown.
Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it.
webpack 5.98.0 compiled with 3 errors in 32147 ms
然后它就 它就……沉默了! 脑()

- 没有错误堆栈
- 没有错误行号
- 没有任何友情提示

好家伙,你这报错风格挺抽象派的啊,毕加索看了都直摇头。
不得已,只能手动翻源码,百度了一圈儿说是 CDN 问题,我想想也不像。再求助 AI 和 GitHub,这才发现罪魁祸首:
vditor-3.10.9\src\ts\undo\index.ts
原来作者当年为了图省事,写 TypeScript 时偷懒没加 //@ts-nocheck。结果编译器较真了,一看到错误就坚决不走了,这就有点“你不开口,我就死给你看”的架势。

我默默给文件开头补了一句:
//@ts-nocheck世界顿时和平了。Webpack 满意地继续编译,我的内心也终于从“绝望”变成了“将就用着吧”。

注: //@ts-nocheck 虽然不是治本的办法,但作为临时救急,它的作用真的有种“闭嘴符咒”的味道。以后有空(真的有空吗?)再慢慢把类型修好吧。
希望记录这次“优雅与崩溃并存”的开发经历,能给后来人减少踩坑的几率,或者至少,能提前让大家做好“被命运暴击”的心理准备。

版权声明
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
温馨提示:本文最后更新于 2025.03.31 ,一些文章的内容可能已经失效,如遇问题请留言反馈。







0 条回复