uniapp-global-components-register-plugin
安装
npm install --save-dev @lx-frontend/uniapp-global-components-register-plugin
该插件解决什么问题?
uniapp项目中,/components
文件夹下的所有组件默认被打包进主包,导致主包体积过大。实际项目中,主包页面没有使用的组件都可以分散到各个子包中去,但是操作上有难度,因为在编写一个组件时,可能暂时无法确定组件是否会在其他分包中使用,所以也就无法确定是否应该将组件放进子包还是主包。
该插件将用来解决这个问题。插件通过分析最终生成的小程序页面json文件,确定每个分包实际使用了哪些组件,然后将主包没有使用到的组件从主包移动到各个分包中,并修改代码对组件引用的位置。
优点
将所有主包页面没有使用的组件从主包中剔除,并分散到各个子包,减小了主包体检。在后续的开发中,只要主包页面保持不变,添加组件将不会再增加主包体积。
缺点
插件采用了最极端的做法,即,只要主包没有使用的组件,一律打包进分包,而在实际情况中,两个分包可能会共用一个不在主包的组件,这会导致该组件在两个分包中各存在一份相同代码,也就是冗余问题。更精细的做法是,统计组件被分包引用的次数,并设置阈值,超过阈值则打包进主包。但考虑到大部分分包体积实际并不大,并且对体验影响没有主包重要,所以暂时不处理这个问题。