公共的代码包括公用的vue组件和js代码,从维护性的角度来说应该放到主包才对,
但是主包有大小限制,如果把2个分包都在用的代码放到主包里面那2M很快就满了。
所以该放在哪?我的方案是从维护的角度放在主包,然后用webpack的插件在打包的时候
把只有分包在用的vue和js代码分别放到分包中去。
uni的文档在manifest.json中有这么一个配置"optimization":{"subPackages":true},
官方有介绍我就不重复了,从代码的角度来说就是如果你的主包js(注意uni只处理了js)只有一个分包在用(注意是1个)那么uni会通过SplitChunksPlugin的cacheGroups来实现此功能。
uni的优化从项目的实际情况来说处理的还不够,所以我自己写了2个插件分别处理公共的vue和js
插件
uni-optimize 是我看了uni源码之后发现的所有可安全优化的地方,包括压缩空间和提升打包速度2个方面
uni-optimize中的transfer-js-plugin插件处理迁移只有分包在用的js
分包js插件需要开启manifest.json中的以下配置:"optimization":{"subPackages":true}
uni-optimize中的transfer-vue-plugin插件处理迁移只有分包在用的vue
可以直接把代码拷下来使用,也可以npm下载
原理有些复杂,一篇文章讲不清,感兴趣的可以直接去github上看,迁移vue的分包插件已经上线没什么问题,迁移js的分包插件因为主包大小够用就还没有上线,所以要用的话要辛苦测试了。
请发表评论