当前位置: 首页 > news >正文

关于Safari浏览器在ios<16.3版本不支持正则表达式零宽断言的解决办法

异常原因

今天在升级Dify版本的时候发现低版本的ios手机出现了以下报错:

SyntaxError: Invalid regular expression: invalid group specifier nameError: Invalid regular expression: invalid group specifier name
Call Stack
46
eval
[native code] (0:0)
./node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/lib/index.js

经过排查发现是Safari浏览器在ios手机低于16.3版本的时候不支持正则表达式的零宽断言。

参考原因:

  1. 相关链接:git issues在这里插入图片描述
    3.相关链接: ios safari 正则兼容问题
    在这里插入图片描述

解决方式

排查我的异常报错日志,是引用的一个包mdast-util-gfm-autolink-literal/造成的

./node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/lib/index.js

去git找相关的issues发现有人反馈过:

地址:iOS 和 Safari 版本 <16.4 中新的“负向后视”正则表达式中断

但是官方在此版本并不打算兼容低版本的标准,给出的建议也是使用Babel转译
在这里插入图片描述

所以到此有2个解决方案。

方案一:Babel转译配置

1. Babel转译配置

添加Babel插件以转换命名捕获组:

npm install --save-dev @babel/plugin-transform-named-capturing-groups-regex

在babel.config.js中:

module.exports = {plugins: ['@babel/plugin-transform-named-capturing-groups-regex']
};
2. 强制转译node_modules中的依赖

修改构建配置,确保相关依赖被Babel处理:

// webpack.config.js 或类似配置
module.exports = {module: {rules: [{test: /\.js$/,include: /node_modules\/mdast-util-gfm-autolink-literal/,use: {loader: 'babel-loader',options: {plugins: ['@babel/plugin-transform-named-capturing-groups-regex']}}}]}
};

重新编译

方案二:降级

mdast-util-gfm-autolink-literal在2.0.0的时候没有这个问题,如果可以选择降级的可以指定2.0.0版本

执行降级命令

pnpm install mdast-util-gfm-autolink-literal@2.0.0

重新启动验证。

我使用降级后就不再报错了。

相关文章:

  • HTML给图片居中
  • 【OSG学习笔记】Day 7: 材质与光照——让模型“活”起来
  • 数据库-数据类型、约束 和 DQL语言
  • 内网数据库怎么通过外网访问?本地SQL无公网IP如何让公网连接实现通用方法
  • 【ES实战】Elasticsearch中模糊匹配类的查询
  • 【mysql】windows mysql命令
  • Redis 基础和高级用法入门
  • 【TensorFlow深度学习框架】从数学原理到工业级应用
  • 国产紫光同创FPGA视频采集转SDI编码输出,基于HSSTHP高速接口,提供2套工程源码和技术支持
  • w~视觉~合集3
  • CV和NLP领域常见模型列表
  • PH热榜 | 2025-04-24
  • elementui日历显示红点及根据日程范围判断是否有红点
  • OSPF动态路由(单臂路由)
  • vue3+element-push 实现input框粘贴图片或文本,图片上传。
  • 2020-06-23 暑期学习日更计划(机器学习入门之路(资源汇总)+概率论)
  • 【农气项目】基于适宜度的产量预报
  • HOW - Code Review 流程自动化
  • 使用 Typora + PicGo + Gitee/GitHub 构建 Markdown 图床技术方案
  • Kafka 命令行样例大全
  • 李彦宏:DeepSeek不是万能,多模态将是未来基础模型的标配
  • 历史一刻,两个航天员乘组拍摄全家福
  • 台媒称美派遣前军官出任“汉光演习”资深观察员,国防部回应
  • 央行上海总部:受益于过境免签政策,上海市外卡刷卡支付交易量稳步增长
  • “家门口的图书馆”有多好?上海静安区居民给出答案
  • 联手华为猛攻主流市场,上汽集团总裁:上汽不做生态孤岛