ts引入公共方法_feat(mini-runner/mini-split-chunks): 添加小程序提取公共模块插件,主包没有引用的,且分包内引用的mod…...

此PR介绍了如何通过miniSplitChunksPlugin优化小程序主包体积,将未引用的module移至分包,减少主包大小。插件逻辑包括分包根目录的vendors和sub-common/*的公共模块提取,以及配置项如enable和exclude的使用说明。适用于微信、支付宝、百度等小程序平台。
摘要由CSDN通过智能技术生成

…ule提取到分包下vendors,跨分包引用的module提取到分包下,达到主包体积最优

这个 PR 做了什么? (简要描述所做更改)

一、插件公共模块提取逻辑

添加miniSplitChunksPlugin,打包时分析module与chunk的依赖关系,筛选出主包没有引用的module提取到分包内,达到主包体积最优的目的,下面是提取的两种类型的分包公共模块

1、分包根目录/vendors

如果该module只被单个分包内的多个page引用,则提取到该分包根目录的vendors文件中

2、分包根目录/sub-common/*

如果该module被多个分包内的page引用,则先提取到outputRoot的sub-common文件夹下,输出文件后根据之前记录的依赖关系,将sub-common源目录下的公共模块复制到对应的分包下的sub-common文件夹,并给分包内的page加上require语句,复制完成后删除sub-common源目录

二、如何使用?

mini配置添加optimizeMainPackage配置,将enable属性设置为true则使用该公共模块提取插件(默认为false不开启该功能)。如果有module不想走分包提取的逻辑,可以添加exclude属性,支持字符串和函数的方式,这样匹配到的module会走原来提取到主包的逻辑

这个 PR 是什么类型? (至少选择一个)

错误修复(Bugfix) issue id #

新功能(Feature)

代码重构(Refactor)

TypeScript 类型定义修改(Typings)

文档修改(Docs)

代码风格更新(Code style update)

其他,请描述(Other, please describe):

这个 PR 满足以下需求:

提交到 master 分支

所有测试用例已经通过

代码遵循相关包中的 .eslintrc, .tslintrc, .stylelintrc 所规定的规范

在本地测试可用,不会影响到其它功能

这个 PR 涉及以下平台:

微信小程序

支付宝小程序

百度小程序

头条小程序

QQ 轻应用

快应用平台(QuickApp)

Web 平台(H5)

移动端(React-Native)

其它需要 Reviewer 或社区知晓的内容:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值