@taro-minify-pack/plugin-cover-browserslist 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 CHANGED
@@ -0,0 +1,108 @@
1
+ # @taro-minify-pack/plugin-cover-browserslist
2
+
3
+ > 自动根据微信小程序基础库版本设置合适的 browserslist,优化编译结果,减少代码体积。
4
+
5
+ 该插件会在构建开始时检查当前 Taro 环境,如果是微信小程序(weapp)环境,则根据配置的基础库版本自动设置 BROWSERSLIST 环境变量,从而影响 Babel、PostCSS 等工具的编译行为,只针对目标环境进行兼容处理,减少不必要的 polyfill 和兼容代码。
6
+
7
+ ## ✨ 功能特性
8
+
9
+ * 🎯 自动根据微信小程序基础库版本设置 browserslist
10
+ * 📦 减少不必要的 polyfill 和兼容代码,优化编译结果
11
+ * 🚀 提升小程序运行性能
12
+ * 💡 配置简单,易于使用
13
+ * 📱 仅在微信小程序环境下生效,不影响其他平台
14
+
15
+ ## 📦 安装
16
+
17
+ ### npm
18
+
19
+ ```sh
20
+ npm install @taro-minify-pack/plugin-cover-browserslist
21
+ ```
22
+
23
+ ### yarn
24
+
25
+ ```sh
26
+ yarn add @taro-minify-pack/plugin-cover-browserslist
27
+ ```
28
+
29
+ ### pnpm
30
+
31
+ ```sh
32
+ pnpm add @taro-minify-pack/plugin-cover-browserslist
33
+ ```
34
+
35
+ ## 🔧 使用配置
36
+
37
+ ### 插件参数说明
38
+
39
+ | 参数名 | 是否必填 | 类型 | 默认值 | 说明 |
40
+ |-------------------------|------|----------|-----|--------------------------|
41
+ | `minBaseLibraryVersion` | 是 | `string` | - | 微信小程序基础库最低版本号,如 "2.14.4" |
42
+
43
+ ### 示例配置
44
+
45
+ ```js
46
+ // config/index.js
47
+ module.exports = {
48
+ plugins: [
49
+ ['@taro-minify-pack/plugin-cover-browserslist', {
50
+ // 设置微信小程序基础库最低版本
51
+ minBaseLibraryVersion: '2.14.4',
52
+ }],
53
+ ],
54
+ }
55
+ ```
56
+
57
+ ```ts
58
+ // config/index.ts
59
+ import { defineConfig } from '@tarojs/cli'
60
+
61
+ export default defineConfig({
62
+ plugins: [
63
+ ['@taro-minify-pack/plugin-cover-browserslist', {
64
+ // 设置微信小程序基础库最低版本
65
+ minBaseLibraryVersion: '2.14.4',
66
+ }],
67
+ ],
68
+ })
69
+ ```
70
+
71
+ ## 🧠 工作原理
72
+
73
+ 1. **构建开始**:插件在 Taro 构建开始时触发
74
+ 2. **环境检查**:
75
+ - 检查当前环境是否为微信小程序(`TARO_ENV=weapp`)
76
+ - 检查是否配置了基础库版本
77
+ 3. **获取 browserslist**:使用 `miniprogram-compat` 库根据基础库版本获取对应的 browserslist
78
+ 4. **设置环境变量**:将获取到的 browserslist 配置设置为 `BROWSERSLIST` 环境变量
79
+ 5. **影响编译**:Babel、PostCSS 等工具会读取该环境变量,只生成目标环境所需的兼容代码
80
+
81
+ ### 技术依赖
82
+
83
+ - **Taro Service**:Taro 插件系统
84
+ - **miniprogram-compat**:提供微信小程序基础库版本与 browserslist 的映射关系
85
+
86
+ ## 📌 适用场景
87
+
88
+ * 需要优化微信小程序代码体积的项目
89
+ * 对小程序运行性能有较高要求的项目
90
+ * 明确了支持的微信小程序基础库版本的项目
91
+ * 希望减少不必要的 polyfill 和兼容代码的项目
92
+
93
+ ## ⚠️ 注意事项
94
+
95
+ 1. **仅支持微信小程序**:该插件仅在微信小程序环境(`TARO_ENV=weapp`)下生效
96
+ 2. **基础库版本选择**:请根据项目实际支持的最低基础库版本进行配置
97
+ 3. **依赖工具**:确保项目中使用的 Babel、PostCSS 等工具支持 browserslist 配置
98
+ 4. **环境变量**:插件会覆盖现有的 `BROWSERSLIST` 环境变量,请确保不会与其他配置冲突
99
+
100
+ ## 📄 许可证
101
+
102
+ MIT License
103
+
104
+ ## 🤝 贡献
105
+
106
+ 欢迎提交 Issues 和 Pull Requests!
107
+
108
+ > 该插件是 @taro-minify-pack 系列插件的一部分,致力于提供完整的 Taro 项目优化解决方案。
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { IPluginContext } from '@tarojs/service';
2
2
  export interface CoverBrowsersListOpt {
3
- minBaseLibraryVersion: string;
3
+ minBaseLibraryVersion?: string;
4
4
  }
5
5
  declare const _default: (ctx: IPluginContext, pluginOpts: CoverBrowsersListOpt) => void;
6
6
  export default _default;
package/dist/index.js CHANGED
@@ -8,8 +8,7 @@ exports.default = (ctx, pluginOpts) => {
8
8
  const browsersList = (0, miniprogram_compat_1.getBrowsersList)(pluginOpts.minBaseLibraryVersion);
9
9
  if (!browsersList)
10
10
  return;
11
- process.env.BROWSERSLIST = browsersList === null || browsersList === void 0 ? void 0 : browsersList.join(',');
12
- console.log('✅ Successfully set BROWSERSLIST from minBaseLibraryVersion');
11
+ process.env.BROWSERSLIST = browsersList.join(',');
13
12
  });
14
13
  };
15
14
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,2DAAoD;AAOpD,kBAAe,CAAC,GAAmB,EAAE,UAA+B,EAAE,EAAE;IACtE,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE;QACpB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,UAAU,CAAC,qBAAqB;YAAE,OAAM;QAEjF,MAAM,YAAY,GAAG,IAAA,oCAAe,EAAC,UAAU,CAAC,qBAAqB,CAAC,CAAA;QAEtE,IAAI,CAAC,YAAY;YAAE,OAAM;QAEzB,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QAElD,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;IAC3E,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,2DAAoD;AAOpD,kBAAe,CAAC,GAAmB,EAAE,UAA+B,EAAE,EAAE;IACtE,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE;QACpB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,UAAU,CAAC,qBAAqB;YAAE,OAAM;QAEjF,MAAM,YAAY,GAAG,IAAA,oCAAe,EAAC,UAAU,CAAC,qBAAqB,CAAC,CAAA;QAEtE,IAAI,CAAC,YAAY;YAAE,OAAM;QAEzB,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taro-minify-pack/plugin-cover-browserslist",
3
- "version": "0.0.5-alpha.5",
3
+ "version": "0.0.5-alpha.6",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/index.ts CHANGED
@@ -2,7 +2,7 @@ import { getBrowsersList } from 'miniprogram-compat'
2
2
  import type { IPluginContext } from '@tarojs/service'
3
3
 
4
4
  export interface CoverBrowsersListOpt {
5
- minBaseLibraryVersion: string
5
+ minBaseLibraryVersion?: string
6
6
  }
7
7
 
8
8
  export default (ctx: IPluginContext, pluginOpts:CoverBrowsersListOpt) => {
@@ -13,8 +13,6 @@ export default (ctx: IPluginContext, pluginOpts:CoverBrowsersListOpt) => {
13
13
 
14
14
  if (!browsersList) return
15
15
 
16
- process.env.BROWSERSLIST = browsersList?.join(',')
17
-
18
- console.log('✅ Successfully set BROWSERSLIST from minBaseLibraryVersion')
16
+ process.env.BROWSERSLIST = browsersList.join(',')
19
17
  })
20
18
  }