@lx-frontend/uniapp-global-components-register-plugin

## 安装 ``` npm install --save-dev @lx-frontend/uniapp-global-components-register-plugin ```

Usage no npm install needed!

<script type="module">
  import lxFrontendUniappGlobalComponentsRegisterPlugin from 'https://cdn.skypack.dev/@lx-frontend/uniapp-global-components-register-plugin';
</script>

README

uniapp-global-components-register-plugin

安装

npm install --save-dev @lx-frontend/uniapp-global-components-register-plugin

该插件解决什么问题?

uniapp项目中,/components文件夹下的所有组件默认被打包进主包,导致主包体积过大。实际项目中,主包页面没有使用的组件都可以分散到各个子包中去,但是操作上有难度,因为在编写一个组件时,可能暂时无法确定组件是否会在其他分包中使用,所以也就无法确定是否应该将组件放进子包还是主包。 该插件将用来解决这个问题。插件通过分析最终生成的小程序页面json文件,确定每个分包实际使用了哪些组件,然后将主包没有使用到的组件从主包移动到各个分包中,并修改代码对组件引用的位置。

优点

将所有主包页面没有使用的组件从主包中剔除,并分散到各个子包,减小了主包体检。在后续的开发中,只要主包页面保持不变,添加组件将不会再增加主包体积。

缺点

插件采用了最极端的做法,即,只要主包没有使用的组件,一律打包进分包,而在实际情况中,两个分包可能会共用一个不在主包的组件,这会导致该组件在两个分包中各存在一份相同代码,也就是冗余问题。更精细的做法是,统计组件被分包引用的次数,并设置阈值,超过阈值则打包进主包。但考虑到大部分分包体积实际并不大,并且对体验影响没有主包重要,所以暂时不处理这个问题。