@taro-minify-pack/preset 0.0.5-alpha.5 → 0.0.5-alpha.6
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 +180 -19
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -1,25 +1,42 @@
|
|
|
1
1
|
## @taro-minify-pack/preset
|
|
2
|
-
> 预设配置, 包含 `@taro-minify-pack/plugin-async-pack` 和 `@taro-minify-pack/plugin-remote-assets`
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
> 预设配置,整合了 @taro-minify-pack 系列核心插件,提供一键式优化解决方案,简化 Taro 项目的性能优化配置。
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
该预设包含以下插件:
|
|
6
|
+
- `@taro-minify-pack/plugin-async-pack`: 异步加载主包代码,优化主包体积
|
|
7
|
+
- `@taro-minify-pack/plugin-remote-assets`: 远程资源上传,优化主包体积
|
|
8
|
+
- `@taro-minify-pack/plugin-cover-browserslist`: 根据微信小程序基础库版本自动设置 browserslist
|
|
9
|
+
- `@taro-minify-pack/plugin-bundle-analyzer`: 包体积分析工具
|
|
10
|
+
|
|
11
|
+
## ✨ 功能特性
|
|
12
|
+
|
|
13
|
+
| 插件名称 | 功能描述 |
|
|
14
|
+
|---------------------------------------------|-----------------------------------------------|
|
|
15
|
+
| @taro-minify-pack/plugin-async-pack | 实现主包代码的异步加载,显著减小主包体积,提升小程序启动性能 |
|
|
16
|
+
| @taro-minify-pack/plugin-remote-assets | 将静态资源上传到远程 CDN,减少主包大小,加快资源加载速度 |
|
|
17
|
+
| @taro-minify-pack/plugin-cover-browserslist | 根据微信小程序基础库版本自动设置 browserslist,减少不必要的 polyfill |
|
|
18
|
+
| @taro-minify-pack/plugin-bundle-analyzer | 可视化分析包体积,帮助识别体积过大的模块和依赖 |
|
|
19
|
+
|
|
20
|
+
## 📦 安装
|
|
21
|
+
|
|
22
|
+
### 必需依赖安装
|
|
23
|
+
使用该预设时,需要同时安装 `@taro-minify-pack/react-lazy-enhanced` 包以支持异步组件加载:
|
|
14
24
|
|
|
15
|
-
#### pnpm 安装
|
|
16
25
|
```bash
|
|
17
|
-
|
|
26
|
+
# 使用 npm
|
|
27
|
+
npm install @taro-minify-pack/preset @taro-minify-pack/react-lazy-enhanced
|
|
28
|
+
|
|
29
|
+
# 使用 yarn
|
|
30
|
+
yarn add @taro-minify-pack/preset @taro-minify-pack/react-lazy-enhanced
|
|
31
|
+
|
|
32
|
+
# 使用 pnpm
|
|
33
|
+
pnpm add @taro-minify-pack/preset @taro-minify-pack/react-lazy-enhanced
|
|
18
34
|
```
|
|
19
35
|
|
|
20
|
-
|
|
36
|
+
## 🛠️ 配置
|
|
37
|
+
|
|
38
|
+
### Babel 配置
|
|
21
39
|
|
|
22
|
-
#### `babel`配置
|
|
23
40
|
```ts
|
|
24
41
|
// babel-preset-taro 更多选项和默认值:
|
|
25
42
|
// https://docs.taro.zone/docs/next/babel-config
|
|
@@ -35,20 +52,27 @@ module.exports = {
|
|
|
35
52
|
]
|
|
36
53
|
}
|
|
37
54
|
```
|
|
38
|
-
|
|
55
|
+
|
|
56
|
+
### Taro 配置
|
|
57
|
+
|
|
58
|
+
#### 基础配置示例
|
|
59
|
+
|
|
39
60
|
```js
|
|
40
61
|
// config/index.js
|
|
62
|
+
const path = require('path')
|
|
63
|
+
const { aliOssUploadAdapter } = require('@taro-minify-pack/remote-assets-adapter-ali-oss')
|
|
64
|
+
|
|
41
65
|
module.exports = {
|
|
42
66
|
compiler: {
|
|
43
67
|
type: 'webpack5',
|
|
44
68
|
prebundle: {
|
|
45
|
-
//
|
|
69
|
+
// 关闭预打包,与分包异步编译有冲突
|
|
46
70
|
enable: false,
|
|
47
71
|
}
|
|
48
72
|
},
|
|
49
73
|
presets: [
|
|
50
74
|
['@taro-minify-pack/preset', {
|
|
51
|
-
//
|
|
75
|
+
// 开启远程资源上传,优化主包体积
|
|
52
76
|
remoteAssets: {
|
|
53
77
|
pathAlias: {
|
|
54
78
|
'@': path.resolve(__dirname, '../src/'),
|
|
@@ -56,7 +80,7 @@ module.exports = {
|
|
|
56
80
|
},
|
|
57
81
|
assetsDirPath: path.resolve(__dirname, '../src/assets/'),
|
|
58
82
|
uploader: aliOssUploadAdapter({
|
|
59
|
-
customDomain:'https://your-custom-domain.com',
|
|
83
|
+
customDomain: 'https://your-custom-domain.com',
|
|
60
84
|
accessKeyId: 'your-access-key-id',
|
|
61
85
|
accessKeySecret: 'your-access-key-secret',
|
|
62
86
|
bucket: 'your-bucket-name',
|
|
@@ -64,9 +88,146 @@ module.exports = {
|
|
|
64
88
|
region: 'your-region',
|
|
65
89
|
})
|
|
66
90
|
},
|
|
67
|
-
//
|
|
91
|
+
// 自动设置 browserslist 配置
|
|
92
|
+
coverBrowsersList: {
|
|
93
|
+
// 必填:微信小程序基础库最低版本号
|
|
94
|
+
minBaseLibraryVersion: '2.14.4'
|
|
95
|
+
},
|
|
96
|
+
// 包体积分析配置
|
|
97
|
+
bundleAnalyzer: true,
|
|
98
|
+
// 开启异步加载主包代码,优化主包体积
|
|
68
99
|
asyncPack: true
|
|
69
100
|
}],
|
|
70
101
|
],
|
|
71
102
|
};
|
|
72
103
|
```
|
|
104
|
+
|
|
105
|
+
#### 完整配置示例
|
|
106
|
+
|
|
107
|
+
```js
|
|
108
|
+
// config/index.js
|
|
109
|
+
const path = require('path')
|
|
110
|
+
const { aliOssUploadAdapter } = require('@taro-minify-pack/remote-assets-adapter-ali-oss')
|
|
111
|
+
|
|
112
|
+
module.exports = {
|
|
113
|
+
compiler: {
|
|
114
|
+
type: 'webpack5',
|
|
115
|
+
prebundle: {
|
|
116
|
+
// 关闭预打包,与分包异步编译有冲突
|
|
117
|
+
enable: false,
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
presets: [
|
|
121
|
+
['@taro-minify-pack/preset', {
|
|
122
|
+
// 远程资源上传配置
|
|
123
|
+
remoteAssets: {
|
|
124
|
+
pathAlias: {
|
|
125
|
+
'@': path.resolve(__dirname, '../src/'),
|
|
126
|
+
'~@': path.resolve(__dirname, '../src/'),
|
|
127
|
+
},
|
|
128
|
+
assetsDirPath: path.resolve(__dirname, '../src/assets/'),
|
|
129
|
+
uploader: aliOssUploadAdapter({
|
|
130
|
+
customDomain: 'https://your-custom-domain.com',
|
|
131
|
+
accessKeyId: 'your-access-key-id',
|
|
132
|
+
accessKeySecret: 'your-access-key-secret',
|
|
133
|
+
bucket: 'your-bucket-name',
|
|
134
|
+
bucketDir: 'bucketDir',
|
|
135
|
+
region: 'your-region',
|
|
136
|
+
})
|
|
137
|
+
},
|
|
138
|
+
// 异步加载主包代码配置
|
|
139
|
+
asyncPack: {
|
|
140
|
+
// 动态包名称前缀
|
|
141
|
+
dynamicPackageNamePrefix: 'dynamic-common',
|
|
142
|
+
// 动态包数量
|
|
143
|
+
dynamicPackageCount: 1
|
|
144
|
+
},
|
|
145
|
+
// 自动设置 browserslist 配置
|
|
146
|
+
coverBrowsersList: {
|
|
147
|
+
// 必填:微信小程序基础库最低版本号
|
|
148
|
+
minBaseLibraryVersion: '2.14.4'
|
|
149
|
+
},
|
|
150
|
+
// 包体积分析配置
|
|
151
|
+
bundleAnalyzer: {
|
|
152
|
+
// 服务器主机
|
|
153
|
+
analyzerHost: '127.0.0.1',
|
|
154
|
+
// 服务器端口
|
|
155
|
+
analyzerPort: 8888,
|
|
156
|
+
// 是否自动打开报告
|
|
157
|
+
openAnalyzer: true
|
|
158
|
+
}
|
|
159
|
+
}],
|
|
160
|
+
],
|
|
161
|
+
};
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## 📋 配置选项
|
|
165
|
+
|
|
166
|
+
### 通用配置
|
|
167
|
+
|
|
168
|
+
| 选项名 | 类型 | 默认值 | 描述 |
|
|
169
|
+
|-------------------|----------------------------------|---------|-----------------------------|
|
|
170
|
+
| asyncPack | `boolean` \| `AsyncPackOpts` | `false` | 异步加载主包代码配置,设为 `true` 使用默认配置 |
|
|
171
|
+
| remoteAssets | `RemoteAssetPluginOpt` | - | 远程资源上传配置 |
|
|
172
|
+
| coverBrowsersList | `CoverBrowsersListOpt` | - | 自动设置 browserslist 配置 |
|
|
173
|
+
| bundleAnalyzer | `boolean` \| `BundleAnalyzerOpt` | `false` | 包体积分析配置,设为 `true` 使用默认配置 |
|
|
174
|
+
|
|
175
|
+
### asyncPack 配置
|
|
176
|
+
|
|
177
|
+
| 选项名 | 类型 | 默认值 | 描述 |
|
|
178
|
+
|--------------------------|----------|--------------------|---------|
|
|
179
|
+
| dynamicPackageNamePrefix | `string` | `'dynamic-common'` | 动态包名称前缀 |
|
|
180
|
+
| dynamicPackageCount | `number` | `1` | 动态包数量 |
|
|
181
|
+
|
|
182
|
+
### remoteAssets 配置
|
|
183
|
+
|
|
184
|
+
| 选项名 | 类型 | 默认值 | 描述 |
|
|
185
|
+
|---------------|--------------------------|-----|--------------|
|
|
186
|
+
| assetsDirPath | `string` | - | 静态资源目录路径(必填) |
|
|
187
|
+
| pathAlias | `Record<string, string>` | - | 路径别名配置 |
|
|
188
|
+
| uploader | `Function` | - | 资源上传适配器函数 |
|
|
189
|
+
|
|
190
|
+
### coverBrowsersList 配置
|
|
191
|
+
|
|
192
|
+
| 选项名 | 类型 | 默认值 | 描述 |
|
|
193
|
+
|-----------------------|----------|-----|-------------------|
|
|
194
|
+
| minBaseLibraryVersion | `string` | - | 微信小程序基础库最低版本号(必填) |
|
|
195
|
+
|
|
196
|
+
### bundleAnalyzer 配置
|
|
197
|
+
|
|
198
|
+
| 选项名 | 类型 | 默认值 | 描述 |
|
|
199
|
+
|--------------|----------------------|---------------|----------|
|
|
200
|
+
| analyzerHost | `string` | `'127.0.0.1'` | 服务器主机 |
|
|
201
|
+
| analyzerPort | `number` \| `'auto'` | `8888` | 服务器端口 |
|
|
202
|
+
| openAnalyzer | `boolean` | `true` | 是否自动打开报告 |
|
|
203
|
+
|
|
204
|
+
## 🎯 使用场景
|
|
205
|
+
|
|
206
|
+
* 需要快速优化 Taro 项目性能的场景
|
|
207
|
+
* 希望简化多插件配置的项目
|
|
208
|
+
* 需要同时使用多个 @taro-minify-pack 系列插件的项目
|
|
209
|
+
* 对小程序主包体积有严格要求的项目
|
|
210
|
+
|
|
211
|
+
## ⚠️ 注意事项
|
|
212
|
+
|
|
213
|
+
1. **必需依赖**:使用该预设时,必须同时安装 `@taro-minify-pack/react-lazy-enhanced` 包,否则异步加载功能可能无法正常工作。
|
|
214
|
+
|
|
215
|
+
2. **预打包冲突**:当启用 `asyncPack` 时,必须关闭 Taro 的预打包功能(`compiler.prebundle.enable = false`),否则会导致构建冲突。
|
|
216
|
+
|
|
217
|
+
3. **Babel 配置**:必须在 Babel 配置中添加 `'dynamic-import-node': process.env.TARO_ENV !== 'weapp'`,以确保异步加载功能在不同环境下正常工作。
|
|
218
|
+
|
|
219
|
+
4. **远程资源上传**:使用 `remoteAssets` 时,需要提供有效的上传适配器和配置信息,确保资源能够正确上传到远程服务器。
|
|
220
|
+
|
|
221
|
+
5. **基础库版本**:使用 `coverBrowsersList` 时,必须指定正确的微信小程序基础库版本,以确保生成的代码兼容目标环境。
|
|
222
|
+
|
|
223
|
+
6. **Webpack 版本**:该预设仅支持 Webpack 5 编译器,请确保 Taro 项目使用 `compiler.type = 'webpack5'`。
|
|
224
|
+
|
|
225
|
+
## 📄 许可证
|
|
226
|
+
|
|
227
|
+
MIT License
|
|
228
|
+
|
|
229
|
+
## 🤝 贡献
|
|
230
|
+
|
|
231
|
+
欢迎提交 Issues 和 Pull Requests!
|
|
232
|
+
|
|
233
|
+
> 该预设是 @taro-minify-pack 系列插件的一部分,致力于提供完整的 Taro 项目优化解决方案。
|
package/dist/index.js
CHANGED
|
@@ -18,14 +18,18 @@ __exportStar(require("@taro-minify-pack/plugin-remote-assets"), exports);
|
|
|
18
18
|
exports.default = (_, opt) => {
|
|
19
19
|
const { remoteAssets, asyncPack, coverBrowsersList, bundleAnalyzer } = opt;
|
|
20
20
|
const plugins = [];
|
|
21
|
+
// 远程静态资源插件
|
|
21
22
|
if (remoteAssets)
|
|
22
23
|
plugins.push([require.resolve('@taro-minify-pack/plugin-remote-assets'), remoteAssets]);
|
|
24
|
+
// 覆盖 BrowsersList 插件
|
|
23
25
|
if (coverBrowsersList)
|
|
24
26
|
plugins.push([require.resolve('@taro-minify-pack/plugin-cover-browserslist'), coverBrowsersList]);
|
|
27
|
+
// 异步分包插件
|
|
25
28
|
if (Boolean(asyncPack) && typeof asyncPack === 'boolean')
|
|
26
29
|
plugins.push(require.resolve('@taro-minify-pack/plugin-async-pack'));
|
|
27
30
|
if (Boolean(asyncPack) && typeof asyncPack !== 'boolean')
|
|
28
31
|
plugins.push([require.resolve('@taro-minify-pack/plugin-async-pack'), asyncPack]);
|
|
32
|
+
// 包体积分析插件
|
|
29
33
|
if (Boolean(bundleAnalyzer) && typeof bundleAnalyzer === 'boolean')
|
|
30
34
|
plugins.push(require.resolve('@taro-minify-pack/plugin-bundle-analyzer'));
|
|
31
35
|
if (Boolean(bundleAnalyzer) && typeof bundleAnalyzer !== 'boolean')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKA,yEAAsD;AAStD,kBAAe,CAAC,CAAM,EAAE,GAAQ,EAAE,EAAE;IAClC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,GAAG,CAAA;IAC1E,MAAM,OAAO,GAAG,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKA,yEAAsD;AAStD,kBAAe,CAAC,CAAM,EAAE,GAAQ,EAAE,EAAE;IAClC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,GAAG,CAAA;IAC1E,MAAM,OAAO,GAAG,EAAE,CAAA;IAElB,WAAW;IACX,IAAI,YAAY;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,wCAAwC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAA;IAEzG,qBAAqB;IACrB,IAAI,iBAAiB;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,6CAA6C,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAExH,SAAS;IACT,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,SAAS,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,CAAA;IAC9H,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,SAAS,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;IAE3I,UAAU;IACV,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,OAAO,cAAc,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,CAAA;IAC7I,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,OAAO,cAAc,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,0CAA0C,CAAC,EAAE,cAAc,CAAC,CAAC,CAAA;IAE/J,OAAO,EAAE,OAAO,EAAE,CAAA;AACpB,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taro-minify-pack/preset",
|
|
3
|
-
"version": "0.0.5-alpha.
|
|
3
|
+
"version": "0.0.5-alpha.6",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
"author": "yu.pan",
|
|
16
16
|
"license": "MIT",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@taro-minify-pack/plugin-
|
|
19
|
-
"@taro-minify-pack/plugin-cover-browserslist": "0.0.5-alpha.
|
|
20
|
-
"@taro-minify-pack/plugin-remote-assets": "0.0.5-alpha.
|
|
21
|
-
"@taro-minify-pack/plugin-
|
|
18
|
+
"@taro-minify-pack/plugin-bundle-analyzer": "0.0.5-alpha.6",
|
|
19
|
+
"@taro-minify-pack/plugin-cover-browserslist": "0.0.5-alpha.6",
|
|
20
|
+
"@taro-minify-pack/plugin-remote-assets": "0.0.5-alpha.6",
|
|
21
|
+
"@taro-minify-pack/plugin-async-pack": "0.0.5-alpha.6"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@types/node": "^18.19.130",
|