编译强制转换成es2018 uni-app安卓低版本手机报错
编译强制转换成es2018 uni-app安卓低版本手机报错
操作步骤:
- 扫码就出现 不需要复现
预期结果:
- 预期安卓手机打开小程序不会报上述错误
实际结果:
- 实际报了上述错误
bug描述:
MiniProgramErrorSyntaxError: Invalid regular expression: /[\p{L}]/u:Invalid property name in character class
Error: SyntaxError: Invalid regular expression: /[\p{L}]/u.Invalid property name in character classnull
编译为微信小程序 安卓手机预览报错 ios正常 使用了markdown-it等插件 插件和代码中并没有使用上述正则 是编译后vender.js中出现的,尝试使用babel添加转义es语法失败,尝试禁用编译新语法失败,尝试降低插件版本还是失败,
| 信息类别 | 详细信息 |
|------------------|------------|
| 产品分类 | uniapp/小程序/微信 |
| PC开发环境操作系统 | Mac |
| PC开发环境操作系统版本号 | macmini 15.2 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 4.57 |
| 第三方开发者工具版本号 | 1.06 |
| 基础库版本号 | 3.8.1 |
| 项目创建方式 | HBuilderX |
更多关于编译强制转换成es2018 uni-app安卓低版本手机报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
你试试跑一下模板项目,看看有没有报错
更多关于编译强制转换成es2018 uni-app安卓低版本手机报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
没有报错
回复 8***@qq.com: 方便发个可复现demo吗?以方便排查问题
回复 DCloud_UNI_JBB: 流式输出 使用markdown-it渲染 安卓手机预览小程序就会出现
} catch (err) { console.error(“数据处理出错:”, err) }
回复 8***@qq.com: 方便发个复现demo吗?现在不清楚你的vue版本等相关信息,不好定位问题
这个错误是由于微信小程序在安卓低版本上不支持ES2018的正则表达式特性\p{L}
导致的。虽然你的代码中没有直接使用这个正则,但可能是某个依赖库(如markdown-it)在编译后被转换成了包含这种语法的代码。
解决方案:
- 在manifest.json中添加以下配置:
"transformOptions": {
"compilerOptions": {
"target": "es5"
}
}
- 确保hbuilderx项目根目录下有babel.config.js文件,内容如下:
module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: {
browsers: ['> 1%', 'last 2 versions', 'not ie <= 8']
},
useBuiltIns: 'usage',
corejs: 3
}
]
]
}
- 如果问题依旧,可以尝试在vue.config.js中配置:
module.exports = {
transpileDependencies: ['markdown-it']
}