一 問題說明
我想用uniapp開發多端應用,引入了uview組件庫來美化樣式,可發布為微信小程序卻提示我代碼質量不過關,主包代碼量太大了:
二 問題分析
2.1 原生微信小程序開發代碼質量限制:
1.主包代碼大小不得大于2M,總代碼量不得大于20M
2.如果使用原生tabbar,那么tabbar所在頁面一定要在主包內
3.主包不能訪問子包里面的資源
4.圖片資源總大小不得大于200k
2.2 uni-app打包為微信小程序uni-module里面的代碼會被打包到主包里面
我用hbuilderx插件的方式引入uview(使用npm包引入的話在hbuilder里面沒有語法提示,很不方便),那么uview組件庫1.4M會被放入主包里面。再加上vue的核心代碼,主包的大小直接爆了。
三 問題解決
要解決主包大小限制的問題,要從一下幾個方面考慮:
1.不要使用原生tabbar
使用uview的Tabbar組件,那么這部分代碼就會被當成普通業務代碼處理,也就不存在限制2的問題。我的代碼想放在哪個包就放在哪個包。
2.uview的組件庫代碼不能放在主包里面,也就是說主包里面的業務代碼不能使用uview組件
這里建議主包里面就放一個引導頁面或者是登錄頁,一個vue簡單的vue文件就7k大小,自己寫一些樣式,可以保證不超過大小限制
3.所有業務代碼,自定義組件都在子包里面定義
微信小程序對于子包的大小是沒有限制的,所以所有的業務邏輯都放在子包里面吧
4.圖片資源使用CDN托管
除了tabbar的icon,其他所有圖片都使用七牛云等平臺進行托管,不要把圖片資源放進代碼里面,否則微信小程序上傳代碼時會提示代碼質量不過關
以上只是我在開發過程中的個人思考,僅供參考,如有更好的方案請在評論區發表您的看法