Skip to content

Commit 0359f99

Browse files
committed
feat: sync axios version
1 parent d8757fd commit 0359f99

File tree

5 files changed

+331
-540
lines changed

5 files changed

+331
-540
lines changed

README.md

Lines changed: 53 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -69,41 +69,67 @@ instance.request({
6969
```
7070

7171
### 小程序
72-
小程序没有 FormData 和 Blob 对象, 因此你需要额外的库来兼容,并通过自定义一个 vite 插件来兼容
72+
73+
小程序没有 FormData 和 Blob 对象, 需要自定义一个 vite 插件来兼容:
74+
75+
```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 {};\nexport default FormData;`,
88+
};
89+
}
90+
if (id.includes("/axios/lib/platform/browser/classes/Blob.js")) {
91+
return {
92+
code: `class Blob {};\nexport default Blob;`,
93+
};
94+
}
95+
}
96+
},
97+
},
98+
```
99+
100+
如果你需要 FormData 和 Blob 的话:
73101

74102
```bash
75103
pnpm add miniprogram-formdata miniprogram-blob
76104
```
77105

78106
```ts
79-
// vite.config.ts
80-
export default defineConfig({
81-
plugins: [
82-
{
83-
transform(code, id) {
84-
if (process.env.UNI_PLATFORM?.includes("mp")) {
85-
if (id.includes("/form-data/lib/browser.js")) {
86-
return {
87-
code: code.replace("window", "globalThis"),
88-
};
89-
}
90-
if (id.includes("/axios/lib/platform/browser/classes/FormData.js")) {
91-
return {
92-
code: `import FormData from 'miniprogram-formdata';\nexport default FormData;`,
93-
};
94-
}
95-
if (id.includes("/axios/lib/platform/browser/index.js")) {
96-
return {
97-
code: `import Blob from 'miniprogram-blob'\n${code}`,
98-
};
99-
}
100-
}
101-
},
102-
},
103-
]
104-
})
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';\nexport default FormData;`,
119+
};
120+
}
121+
if (id.includes("/axios/lib/platform/browser/classes/Blob.js")) {
122+
return {
123+
code: `import Blob from 'miniprogram-blob';\nexport default Blob;`,
124+
};
125+
}
126+
}
127+
},
128+
},
105129
```
106130

131+
如果你使用的是 vue cli,那么你需要编写一个类似的 webpack 插件
132+
107133
## 客户端类型
108134

109135
提供了 upload 和 download 方法的类型提示,及 AxiosRequestConfig 支持传递 uniapp 特有参数

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@uni-helper/axios-adapter",
33
"type": "module",
4-
"version": "0.0.7",
4+
"version": "1.4.0",
55
"license": "MIT",
66
"packageManager": "pnpm@8.5.1",
77
"description": "The Axios adapter for uniapp",

playground/package.json

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,19 +49,22 @@
4949
"@dcloudio/uni-mp-weixin": "3.0.0-alpha-3071220230324001",
5050
"@dcloudio/uni-quickapp-webview": "3.0.0-alpha-3071220230324001",
5151
"@uni-helper/axios-adapter": "workspace:*",
52-
"@vueuse/integrations": "^9.12.0",
53-
"axios": "^1.2.6",
54-
"vue": "^3.2.45",
52+
"@vueuse/core": "^9.13.0",
53+
"@vueuse/integrations": "^9.13.0",
54+
"@vueuse/shared": "^9.13.0",
55+
"axios": "^1.4.0",
56+
"vue": "^3.3.4",
57+
"vue-demi": "^0.14.5",
5558
"vue-i18n": "^9.2.2"
5659
},
5760
"devDependencies": {
58-
"@dcloudio/types": "^3.2.8",
61+
"@dcloudio/types": "^3.3.3",
5962
"@dcloudio/uni-automator": "3.0.0-alpha-3071220230324001",
6063
"@dcloudio/uni-cli-shared": "3.0.0-alpha-3071220230324001",
6164
"@dcloudio/uni-stacktracey": "3.0.0-alpha-3071220230324001",
6265
"@dcloudio/vite-plugin-uni": "3.0.0-alpha-3071220230324001",
63-
"typescript": "^4.9.4",
64-
"vite": "^4.0.4",
65-
"vitest": "^0.30.0"
66+
"typescript": "^5.0.4",
67+
"vite": "^4.3.8",
68+
"vitest": "^0.31.1"
6669
}
6770
}

playground/vite.config.ts

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,29 @@ import uni from "@dcloudio/vite-plugin-uni";
33

44
// https://vitejs.dev/config/
55
export default defineConfig({
6-
plugins: [uni()],
6+
plugins: [
7+
uni(),
8+
{
9+
name: "vite-plugin-uni-axios",
10+
transform(code, id) {
11+
if (process.env.UNI_PLATFORM?.includes("mp")) {
12+
if (id.includes("/form-data/lib/browser.js")) {
13+
return {
14+
code: code.replace("window", "globalThis"),
15+
};
16+
}
17+
if (id.includes("/axios/lib/platform/browser/classes/FormData.js")) {
18+
return {
19+
code: `class FormData {};\nexport default FormData;`,
20+
};
21+
}
22+
if (id.includes("/axios/lib/platform/browser/classes/Blob.js")) {
23+
return {
24+
code: `class Blob {};\nexport default Blob;`,
25+
};
26+
}
27+
}
28+
},
29+
},
30+
],
731
});

0 commit comments

Comments
 (0)