科技公司网站响应式,漯河logo设计公司,备案ip 查询网站查询系统,长沙网络营销公司哪家好重要提示#xff1a;请首先完整阅读完文章内容后再操作#xff0c;以免不必要的时间浪费#xff01;切记#xff01;#xff01;#xff01;在使用vitevue3开发uni-app项目时#xff0c;存在低版本浏览器不兼容es6语法的问题#xff0c;如“?.” “??” 等。为了方便…重要提示请首先完整阅读完文章内容后再操作以免不必要的时间浪费切记在使用vitevue3开发uni-app项目时存在低版本浏览器不兼容es6语法的问题如“?.” “??” 等。为了方便使用jenkins自动化部署前端项目我使用的是 uni-cli而非HBuilderX 创建的项目当然使用uni-cli创建uni-app项目还有一个好处是可以使用其他软件如 vscode、Cursor 或者webstrom进行开发这些软件可以集成AI功能能方便我们使用AI辅助开发提升开发效率。在我的项目中使用的vite版本是5.2.8如果需要前端项目支持低版本的浏览器或者需要将较新的es语法转换成更低版本那么只需要在 vite.config.js 中添加 build.target 配置即可vite官方文档显示build.target的值为string或者string[]可以根据自己的兼容需求进行配置。如果未显式配置build.target那么vite会使用默认值“modules”根据文档说明其作用等同于 [es2020, edge88, firefox78, chrome87, safari14]。需要额外说明的是对于vite v2或之后的版本不需要再单独安装使用包括 vitejs/plugin-legacy以及其他任何babel插件解决浏览器兼容问题前文提到vite已经内置了相关配置项build.target如果你使用了较新的vite版本若强行在plugins中使用 legacy()那么在执行 npm run build 打包时也会有相关配置已被替换的提示。最坑的点是不要在开发阶段npm run dev到低版本浏览器上验证build.target配置是否生效必须用npm run build 打包生成的代码来验证因为这个配置在开发环境是不起作用的我被整整浪费了3个小时才发现的这个问题当然可能有我不知道的配置项来控制这个行为。import { defineConfig } from vite
import uni from dcloudio/vite-plugin-uni
// import legacy from vitejs/plugin-legacy// https://vitejs.dev/config/
export default defineConfig({plugins: [uni(),// legacy({// targets: [// 1%, last 1 version, ie 11,// safari 10,// Android 39,// Chrome 60,// Safari 10.1,// iOS 10.3,// Firefox 54,// Edge 15// ],// })],build: {sourcemap: true,target: [chrome58,firefox67,safari11,edge79,],},
})