UniApp + Vue3 使用 marked 报错:SyntaxError /[\p{L}\p{N}]/u 问题分析与解决

背景

在开发中接收SSE的markdown文本,需要使用库解决,就引入了marked库作为解析器。引入的是marked@4.3.0,在uniapp的vue2版本一切正常。当将该页面迁移到vue3版本就出现报错。

报错如下图所示:

问题分析

引入的marked,/[\p{L}\p{N}]/u语法,是需要​​运行在ES2018,Unicode 正则支持​ ,在vue3版本打包后没有对该语法进行处理,导致打包后运行在微信小程序出现报错,导致页面白屏。

解决方案

  1. 更换marked库
  2. 修改vite配置,语法降级
  3. 修改marked库源码

由于我是直接引入源文件放入分包中,因为直接使用npm引入,会打入主包。将该语法进行替换,根据自身情况进行替换:

我将其中:!e.match(/[\p{L}\p{N}]/u) ,修改为:!/[a-zA-Z0-9\u4e00-\u9fff]/.test(e)

测试后正常展示。

总结

最后总结一下,出现/[\p{L}\p{N}]/u 报错,可直接修改报错语法,根据自身进行适配处理。

相关推荐
大前端helloworld3 小时前
前端梳理体系从常问问题去完善-框架篇(Vue2&Vue3)
前端·javascript·面试
小墨宝3 小时前
web前端学习LangGraph
前端·学习
南囝coding3 小时前
React 19.2 重磅更新!这几个新特性终于来了
前端·react.js·preact
Dajiaonew3 小时前
Vue3 + TypeScript 一篇文章 后端变全栈
前端·javascript·typescript
广州华水科技4 小时前
GNSS与单北斗变形监测一体机在基础设施安全中的应用分析
前端
勤劳打代码4 小时前
妙笔生花 —— Flutter 实现飞入动画
前端·flutter·设计模式
银安4 小时前
CSS排版布局篇(4):浮动(float)、定位(position) 、层叠(Stacking)
前端·css
昭昭日月明5 小时前
mac 效率工具:Raycast 的扩展开发
前端·mac·设计
white-persist5 小时前
XXE 注入漏洞全解析:从原理到实战
开发语言·前端·网络·安全·web安全·网络安全·信息可视化