希望 @dcloudio/vite-plugin-uni 中 viteLegacyOptions 对非 H5 平台也生效
- Dominant language
- JavaScript
- Stars
- 41.6k
- Forks
- 3.7k
- Avg merge
- 7h 6m
- Merged PRs (30d)
- 6
Description
**新功能描述**
希望 `@dcloudio/vite-plugin-uni` 中 `viteLegacyOptions` 对非 H5 平台也生效。
**现状及问题**
当前只对 H5 平台生效。如果使用了一些较新的 API,在某些平台上就会报错不可用,如 `String.prototype.replaceAll`。


**尝试方案**
1. 可以在项目 `main.ts` 内增加了 `core-js` 以解决问题,但增加的包体积较大。
```ts
// main.ts
import 'core-js/actual';
import { createSSRApp } from 'vue';
...
```
2. 参考 [@vue/babel-preset-app](https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/babel-preset-app#polyfills),手动增加 polyfills,增加的包体积可控且较小,但非常繁琐。
```ts
// 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';
...
```
3. 修改 `@dcloudio/vite-plugin-uni`,去除 `&& options.platform === 'h5'`,但是运行会失败。

**补充信息**
无
Contributor guide
Assessment
This issue has not been assessed yet.