uni-app
uni-app copied to clipboard
希望 @dcloudio/vite-plugin-uni 中 viteLegacyOptions 对非 H5 平台也生效
新功能描述
希望 @dcloudio/vite-plugin-uni 中 viteLegacyOptions 对非 H5 平台也生效。
现状及问题
当前只对 H5 平台生效。如果使用了一些较新的 API,在某些平台上就会报错不可用,如 String.prototype.replaceAll。
尝试方案
- 可以在项目
main.ts内增加了core-js以解决问题,但增加的包体积较大。
// main.ts
import 'core-js/actual';
import { createSSRApp } from 'vue';
...
- 参考 @vue/babel-preset-app,手动增加 polyfills,增加的包体积可控且较小,但非常繁琐。
// main.ts
import 'core-js/actual/array/iterator';
import 'core-js/actual/promise';
import 'core-js/actual/object/assign';
import 'core-js/actual/promise/finally';
// import 'core-js/actual/string/replace-all'; // 另外增加需要的 polyfill
import { createSSRApp } from 'vue';
...
- 修改
@dcloudio/vite-plugin-uni,去除&& options.platform === 'h5',但是运行会失败。
补充信息
无
https://github.com/dcloudio/uni-app/issues/3092
关注一下,不知道什么时候可以增强
最近一样遇到了问题, 低版本ios13的系统直接白屏, 用build.target : 'es6' 解决了语法报错,但是 低版本手机会有很多方法不支持,前面都是真机测试发现了 手动判断 原型函数 进行填充, 后面才了解h5开发都是 语法降级,然后自动 polyfill 不支持的方法.现在只能自己接入bable处理吗?
https://vitesse-docs.netlify.app/getting-started/deployment#%E5%85%BC%E5%AE%B9%E6%80%A7
https://vitesse-docs.netlify.app/getting-started/deployment#%E5%85%BC%E5%AE%B9%E6%80%A7
多谢.