VUE3+Vite项目兼容Firefox68时出现正则表达式flag s错误求助
解决Firefox 68下的正则表达式
s标志错误问题 问题根源是Firefox 68不支持ES2018引入的正则表达式s(dotAll)标志,而Vite默认的build.target仅处理语法降级,不会转译这类新增的正则特性。你需要通过专门的兼容插件完成针对性处理,具体步骤如下:
- 安装兼容插件
npm install @vitejs/plugin-legacy --save-dev
- 修改
vite.config.js配置
导入插件并补充兼容配置,同时调整编译目标版本:
import { fileURLToPath, URL } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import legacy from '@vitejs/plugin-legacy' export default defineConfig({ plugins: [ vue(), legacy({ targets: ['firefox 68'], additionalLegacyPolyfills: ['regenerator-runtime/runtime'], renderLegacyChunks: true }) ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) } }, base: '/calculadora/', build:{ target: 'es2015', // 降级到Firefox 68完全支持的ES版本 } })
- 关键配置说明
legacy.targets: 明确指定兼容的Firefox版本,插件会生成针对性的兼容代码build.target: 'es2015': 确保编译后的基础语法能在Firefox 68中正常解析additionalLegacyPolyfills: 按需补充异步函数等特性需要的polyfill
- 重新构建测试
执行npm run build后部署产物,即可在Firefox 68中正常运行应用。
内容的提问来源于stack exchange,提问作者Carlos Bonnin
相关产品推荐
相关产品推荐

