一涮因、升級(jí)調(diào)研
在考慮升級(jí)到3.x還是2.x時(shí)废睦,考慮3.x改動(dòng)比較多,1.x已經(jīng)不是官方及時(shí)維護(hù)的版本了养泡,因此考慮平滑升級(jí)嗜湃,升級(jí)到2.x。
二澜掩、升級(jí)流程
1.采用局部更新
????1) 單獨(dú)更新某個(gè)項(xiàng)目采用npm
npm install --save-dev @tarojs/cli@2.x
????2)然后在項(xiàng)目目錄里運(yùn)行以下命令來(lái)升級(jí)依賴:
node ./node_modules/.bin/taro update project 2.2.15(在github上购披,查看發(fā)布的最新版本)
2.安裝@tarojs/mini-runner 依賴
????Taro 2.0 新增了 @tarojs/mini-runner 作為小程序的編譯依賴,所以你需要將它安裝在你的項(xiàng)目里肩榕,運(yùn)行:
npm install --save-dev @tarojs/mini-runner@2.x
3.編譯配置調(diào)整
參考:https://nervjs.github.io/taro/docs/2.x/migrate-to-2/
主要變更有:
????1)babel的配置刚陡。
????2)樣式的變更。
????3)小程序配置從 weapp 改為 mini株汉。5.sass配置的變更筐乳,直接在config對(duì)象屬性下添加plugins: [ '@tarojs/plugin-sass', ]
三、升級(jí)出現(xiàn)的問(wèn)題
1.文字縮小乔妈,間距變小蝙云。
????解決方案:之前designWidth是375,對(duì)應(yīng)的deviceRatio:{375:1/2}
路召,現(xiàn)在需要改成deviceRatio:{375:2/1}
勃刨。
2.運(yùn)行時(shí)部分頁(yè)面無(wú)法加載,報(bào)錯(cuò)提示Page ... has not been registered yet.
????解決方案:主要是import相關(guān)導(dǎo)致的當(dāng)前頁(yè)面無(wú)法注冊(cè)股淡,一般是編寫(xiě)了BaseComponent身隐,頁(yè)面繼承了BaseComponent,并且在子頁(yè)面重復(fù)引入了一些BaseComponent的工具類導(dǎo)致的唯灵,兩種解決方式:1).頁(yè)面改用Component贾铝。2).將子類中的重復(fù)引用的改成直接使用父類的。(如果采用了mobx鏈路比較深,建議還是改成Component)
3.真機(jī)上列表無(wú)法加載垢揩,AtActivityIndicator報(bào)錯(cuò)
????解決方案:taro-ui升級(jí)到2.3.4
4.通過(guò)微信小程序工具可以正常上傳大脉,但是通過(guò)miniprogram-ci工具自動(dòng)化上傳,提示主包超過(guò)了2M水孩。
????解決方案:對(duì)比查看通過(guò)工具上傳的主包比miniprogram-ci要少接近300KB,通過(guò)miniprogram-ci --help
琐驴,查看命令俘种,新增壓縮js,重新執(zhí)行腳本即可上傳绝淡。
五宙刘、參考資料
https://taro-docs.jd.com/taro/blog/2020-09-01-taro-versions
https://www.bookstack.cn/read/taro-2.0.1/e8e5c97630cf8f63.md#sass
https://nervjs.github.io/taro/docs/2.x/migrate-to-2/