share-light 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -60
- package/lib/config.d.ts +2 -1
- package/lib/config.js +1 -1
- package/lib/index.js +2550 -22
- package/lib/index.prod.js +1 -1
- package/lib/types-helper.d.ts +6 -0
- package/lib/types-helper.js +1 -1
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -16,11 +16,15 @@
|
|
|
16
16
|
3. QQ、微信
|
|
17
17
|
4. 其他,包括系统浏览器
|
|
18
18
|
|
|
19
|
-
## 1.
|
|
19
|
+
## 1. 作者
|
|
20
|
+
|
|
21
|
+
**novlan1**
|
|
22
|
+
|
|
23
|
+
## 2. 如何使用
|
|
20
24
|
|
|
21
25
|
可直接引入,也可异步加载。
|
|
22
26
|
|
|
23
|
-
###
|
|
27
|
+
### 2.1. 直接引入
|
|
24
28
|
|
|
25
29
|
安装:
|
|
26
30
|
|
|
@@ -45,7 +49,7 @@ initShare({
|
|
|
45
49
|
openShareUI();
|
|
46
50
|
```
|
|
47
51
|
|
|
48
|
-
###
|
|
52
|
+
### 2.2. 异步加载
|
|
49
53
|
|
|
50
54
|
也可异步加载,并使用其提供的全局变量 `shareLightSDK`,性能更佳。
|
|
51
55
|
|
|
@@ -110,7 +114,7 @@ export function setupWzydShare(url: string) {
|
|
|
110
114
|
}
|
|
111
115
|
```
|
|
112
116
|
|
|
113
|
-
##
|
|
117
|
+
## 3. 类型
|
|
114
118
|
|
|
115
119
|
```ts
|
|
116
120
|
export const SHARE_TYPE_MAP = {
|
|
@@ -172,7 +176,7 @@ export interface ShareUIObject {
|
|
|
172
176
|
}
|
|
173
177
|
```
|
|
174
178
|
|
|
175
|
-
##
|
|
179
|
+
## 4. 内部配置
|
|
176
180
|
|
|
177
181
|
默认分享图片和提示文案等,可通过 `initShare` 参数覆盖。
|
|
178
182
|
|
|
@@ -188,65 +192,13 @@ export const DEFAULT_TIP_MAP = {
|
|
|
188
192
|
};
|
|
189
193
|
```
|
|
190
194
|
|
|
191
|
-
##
|
|
195
|
+
## 5. 更新日志
|
|
192
196
|
|
|
193
197
|
[点此查看](./CHANGELOG.md)
|
|
194
198
|
|
|
195
|
-
##
|
|
196
|
-
|
|
197
|
-
### 5.1. 当前痛点
|
|
198
|
-
|
|
199
|
-
1. 引入了`jsapi`,体积太大,文件太多,可读性、可维护性太差。本来就是非常简单的东西,加载`sdk`、调用全局变量即可,现在变得非常麻烦
|
|
200
|
-
2. 类型缺失,使用、阅读、开发、调试困难
|
|
201
|
-
- 多个全局对象 `shareObject`、`shareUiObject` 没有类型
|
|
202
|
-
- 分享类别 `shareType` 没有类型,都是`1234`的魔法字符串
|
|
203
|
-
- 对外的API,比如 `initShare` 没有类型
|
|
204
|
-
3. 最关键的一点,分享根本不是首屏所需资源,不是必要路径,完全可以异步加载
|
|
205
|
-
|
|
206
|
-
当前 `pmd` 体积:
|
|
207
|
-
|
|
208
|
-
<img src="https://mike-1255355338.cos.ap-guangzhou.myqcloud.com/article/2025/3/own_mike_1ee0e93a76cf00acf0.png" width="600">
|
|
209
|
-
|
|
210
|
-
把分享重定向到一个伪文件,即去掉分享后的 `pmd` 体积:
|
|
211
|
-
|
|
212
|
-
<img src="https://mike-1255355338.cos.ap-guangzhou.myqcloud.com/article/2025/3/own_mike_43a0c42a4cb653343a.png" width="600">
|
|
213
|
-
|
|
214
|
-
可见分享模块的体积已经达到了 `97.49KB`,亟需优化。
|
|
215
|
-
|
|
216
|
-
光 `jsapi` 就有 `58.34KB`。
|
|
217
|
-
|
|
218
|
-
<img src="https://mike-1255355338.cos.ap-guangzhou.myqcloud.com/article/2025/3/own_mike_d45c10acbf304f3975.png" width="600">
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
### 5.2. 优化思路
|
|
222
|
-
|
|
223
|
-
1. 去掉 `jsapi`
|
|
224
|
-
2. 补充类型提示
|
|
225
|
-
3. 封装异步加载逻辑,业务不关心
|
|
226
|
-
|
|
227
|
-
其他:
|
|
228
|
-
|
|
229
|
-
1. `Toast`, `Dialog` 改为外部传入,方便切换组件库
|
|
230
|
-
- `Toast.show` => `showToast`
|
|
231
|
-
- `Dialog.confirm` => `showConfirmDialog`
|
|
232
|
-
2. `toast` 和 `dialog` 文案支持自定义
|
|
233
|
-
3. `postGetMiniProgramOpenLink` 改为外部传入,可以充分自定义。传入的时候,就应该封装好参数,`share` 内部不关心。另外,这里真的需要这么做吗,很多业务已经改成明文 `scheme` 了,根本不用传了
|
|
234
|
-
4. `configWx` 改为外部传入,适应任意业务
|
|
235
|
-
5. 支持隐藏任意分享渠道,传入 `hideShareType` 参数即可,并把之前内部的账号判断移出 `share` 核心逻辑
|
|
236
|
-
6. `getEnvVersion` 去掉,没找到需要它的地方
|
|
237
|
-
7. `isTestEnv`,同样去掉
|
|
238
|
-
|
|
239
|
-
## 6. 效果
|
|
240
|
-
|
|
241
|
-
减少 `85KB`。
|
|
242
|
-
|
|
243
|
-
之前:
|
|
244
|
-
|
|
245
|
-
<img src="https://mike-1255355338.cos.ap-guangzhou.myqcloud.com/article/2025/3/own_mike_0ce48c3b497a47cc7b.png" width="600">
|
|
246
|
-
|
|
247
|
-
之后:
|
|
199
|
+
## 6. 制作背景
|
|
248
200
|
|
|
249
|
-
|
|
201
|
+
参考 [分享模块重构](../work/23.share-refactor.html)
|
|
250
202
|
|
|
251
203
|
## 7. 其他
|
|
252
204
|
|
package/lib/config.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const MQQ_SOURCE = "igame_source";
|
|
2
|
+
export declare const DEFAULT_SHARE_ICON = "";
|
|
2
3
|
export declare const DEFAULT_TIP_MAP: {
|
|
3
4
|
copyTextSuccess: string;
|
|
4
5
|
copyTextFail: string;
|
package/lib/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const o="
|
|
1
|
+
const o="igame_source",e="",i={copyTextSuccess:"复制链接成功,快去粘贴吧!",copyTextFail:"该浏览器不支持自动复制",dialogTitle:"温馨提示",dialogMessage:"请复制链接到微信或手机QQ内打开参与活动",dialogConfirmButton:"我知道了"};export{e as DEFAULT_SHARE_ICON,i as DEFAULT_TIP_MAP,o as MQQ_SOURCE};
|