@@ -70,65 +70,24 @@ instance.request({
7070
7171### 小程序
7272
73- 小程序没有 FormData 和 Blob 对象, 需要自定义一个 vite 插件来兼容:
73+ axios 依赖了 ` FormData ` 和 ` Blob ` 对象, 而小程序没有,使用提供的插件来解决这一问题
7474
7575``` ts
76- {
77- name : " vite-plugin-uni-axios" ,
78- transform (code , id ) {
79- if (process .env .UNI_PLATFORM ?.includes (" mp" )) {
80- if (id .includes (" /form-data/lib/browser.js" )) {
81- return {
82- code: code .replace (" window" , " globalThis" ),
83- };
84- }
85- if (id .includes (" /axios/lib/platform/browser/classes/FormData.js" )) {
86- return {
87- code: ` class FormData {};\n export default FormData; ` ,
88- };
89- }
90- if (id .includes (" /axios/lib/platform/browser/classes/Blob.js" )) {
91- return {
92- code: ` class Blob {};\n export default Blob; ` ,
93- };
94- }
95- }
96- },
97- },
76+ // vite.config.js
77+ import uniAxiosAdapter from " @uni-helper/axios-adapter/vite" ;
78+
79+ export default {
80+ plugins: [
81+ ...
82+ uniAxiosAdapter ()
83+ ...
84+ ],
85+ }
9886```
87+ > [ !WARNING]
88+ > 这个插件通过将 ` FormData ` 和 ` Blob ` 导出为空 ` class ` 来解决兼容性问题,如果你确实需要的话,使用 ` pnpm add miniprogram-formdata miniprogram-blob ` 来安装对应的 polyfill 即可,插件会自动使用。
9989
100- 如果你需要 FormData 和 Blob 的话:
101-
102- ``` bash
103- pnpm add miniprogram-formdata miniprogram-blob
104- ```
105-
106- ``` ts
107- {
108- name : " vite-plugin-uni-axios" ,
109- transform (code , id ) {
110- if (process .env .UNI_PLATFORM ?.includes (" mp" )) {
111- if (id .includes (" /form-data/lib/browser.js" )) {
112- return {
113- code: code .replace (" window" , " globalThis" ),
114- };
115- }
116- if (id .includes (" /axios/lib/platform/browser/classes/FormData.js" )) {
117- return {
118- code: ` import FormData from 'miniprogram-formdata';\n export default FormData; ` ,
119- };
120- }
121- if (id .includes (" /axios/lib/platform/browser/classes/Blob.js" )) {
122- return {
123- code: ` import Blob from 'miniprogram-blob';\n export default Blob; ` ,
124- };
125- }
126- }
127- },
128- },
129- ```
130-
131- 如果你使用的是 vue cli,那么你需要编写一个类似的 webpack 插件
90+ 如果你使用的是 Vue CLI,改用 ` @uni-helper/axios-adapter/webpack ` 即可
13291
13392## 客户端类型
13493
0 commit comments