当前位置: 首页 > news >正文

vite+vue3开发uni-app时低版本浏览器不支持es6语法的问题排坑笔记

重要提示:请首先完整阅读完文章内容后再操作,以免不必要的时间浪费!切记!!!在使用vite+vue3开发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',],},
})

http://www.lryc.cn/news/539447.html

相关文章:

  • Linux系统编程基础详解
  • 钉钉应用开发
  • 打破限制!自定义 Hooks 如何提升 React 组件的灵活性
  • 使用arthas测试接口响应时间
  • Vue3.x的深度选择器详细解读
  • 基于Python的Diango旅游数据分析推荐系统设计与实现+毕业论文(15000字)
  • Django ModelForm使用(初学)
  • android ViewPager 管理 Fragment的预加载onCreate
  • 运用先进的智能算法和优化模型,进行科学合理调度的智慧园区开源了
  • 国产编辑器EverEdit -告别东找西找!一键打开当前文件所在目录!
  • 【分治法】线性时间选择问题
  • SpringBoot速成(16)项目部署P30
  • 【Mysql:数据库的基础操作】
  • Nacos Derby 远程命令执行漏洞修复建议
  • idea 2023.3.7常用插件
  • DeepSeek和ChatGPT在科研课题设计和SCI论文写作中的应用
  • kubeadm拉起的k8s集群证书过期的做法集群已奔溃也可以解决
  • 2024年河北省职业院校技能大赛网络系统管理赛项样题解法
  • 【开源免费】基于SpringBoot+Vue.JS个人博客系统(JAVA毕业设计)
  • 纯新手教程:用llama.cpp本地部署DeepSeek蒸馏模型
  • JDK 8+新特性(Stream API、Optional、模块化等)
  • 国产编辑器EverEdit - 独门暗器:自动监视剪贴板内容
  • 贪心算法-买卖股票的最佳时机
  • 文本操作基础知识:正则表达式
  • 【Scrapy】Scrapy教程6——提取数据
  • PHP 网络编程介绍
  • 【C语言】C语言 食堂自动化管理系统(源码+数据文件)【独一无二】
  • mybatis存储过程返回list
  • 【vue】nodejs版本管理利器:nvm
  • 负载测试工具有哪些?