1、问题:uniapp-cli项目使用vite打包部署后在钉钉app访问显示白屏
2、分析
在html引入eruda后重新打包部署查看控制台报错unexpected token ?
使用uniapp-cli模式vue3+ts语法,cli编译器版本是3.0.0-3081220230817001,,vite版本是4.0.3,vue版本是3.3.4
<script type="text/javascript" src="http://cdn.bootcdn.net/ajax/libs/eruda/2.4.1/eruda.js"></script>
<script>
eruda.init()
console.log(navigator.userAgent)
</script>
3、解决办法
修改vite.config.ts
import legacy from "@vitejs/plugin-legacy"
plugins: [
legacy({
targets: ["chrome 52"], // 需要兼容的目标列表
additionalLegacyPolyfills: ["regenerator-runtime/runtime"]
})
]
重新打包部署后控制台报错变成了globalThis is not defined
修改vite.config.ts
import legacy from "@vitejs/plugin-legacy"
plugins: [
legacy({
modernPolyfills: true, // 启用此选项将为现代构建生成一个单独的polyfills块
renderLegacyChunks: true, // 只在你使用`modernPolyfills`时有用,它本质上允许你使用这个插件将polyfill注入到现代构建中
targets: ["chrome 52"], // 需要兼容的目标列表
additionalLegacyPolyfills: ["regenerator-runtime/runtime"] // 基于目标浏览器范围和最终捆绑包中的实际使用情况生成polyfills块,ie11?
})
]
问题解决
但是在开发模式下,Vite不会转译文件,所以只有打包后才生效。
开发环境如何兼容钉钉浏览器