公司测试反馈我们的网页无法自Firefox 60上打开,报错信息为“invalid identity escape in regular expression”, 且报错行数和为1,这样无法查找报错位置。网上搜可能是regex导致的,但所有解决方案均无效。最后尝试改造vite,改造后居然能正常显示报错位置,再使用“@vitejs/plugin-legacy”即可解决兼容性问题。附vite.config.js配置
import { defineConfig,loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
import legacyPlugin from '@vitejs/plugin-legacy';
// https://vitejs.dev/config/
export default ({mode}) => {
const env = loadEnv(mode,process.cwd(), '')
return defineConfig({
server: {
port: 8080,
proxy: {
'/api/': {
target: `http://${env.IP}:8080/`,
changeOrigin: true
}
}
},
plugins: [
vue(),
legacyPlugin({
targets: ['firefox 60'], // 需要兼容的目标列表,可以设置多个
})
],
resolve: {
alias: {
'@': path.resolve(__dirname, 'src')
}
},
css: {
preprocessorOptions: {
scss: {
charset: false,
additionalData: '@use "@/assets/style/variables.scss" as *;',
}
}
}
})
}