一、它是誰?
【miniprogram-to-uniapp】轉換微信小程序”項目為uni-app項目。
原則上混淆過的項目,也可以進轉換,因為關鍵字丟失,不一定會完美。
二、它的原理是什么?
最初是學了半節課堆和棧,覺得詞法分析挺有意思的,再加入轉換小程序插件時,發現這些繁瑣的操作完全可以使用程序來完成。
核心是使用Babel獲取AST(詞法分析),然后或使用Babel自帶函數增刪,或正則分析替換等等操作。
可能有的朋友覺得,這種為啥不是純正則分析? 純正則可以解決一部分問題,對於標簽與標簽內容,其實正則是很難進行區分的哈。
三、它能做哪些事情?
- 支持無雲開發的小程序項目轉換為uni-app項目
- 支持有雲開發的小程序項目轉換為uni-app項目(cloudfunctions目錄將被忽略,uni-app結合小程序雲開發見:使用uni-app進行微信小程序雲開發經驗分享)
- 支持解析TypeScript小程序項目
- 支持解析使用npm模塊的小程序項目
- 支持解析include標簽
- 支持解析template標簽
- 支持解析Behavior文件為mixins文件
- 支持.js', .wxml和*.wxss文件進行相應轉換,並做了大量的優化
- 支持識別App、Page、Component、VantComponent、Behavior和純Javascript文件的轉換
- 使用jyf-parser替換wxParse(感謝網友 “愛瑞巴勒康忙北鼻” 的建議)
- 搜索未在data聲明,而直接在setData()里使用的變量,並修復
- 合並使用require導入的wxs文件
- 因uni-app會將所有非static目錄的資源文件刪除,因此將所有資源文件移入static目錄,並修復所有能修復到的路徑
- 修復變量名與函數重名的情況(目前uni編譯時會將非static目錄的文件復制一份到static目錄,但並不完全,因此本功能仍保留)
- 支持wxs文件轉換,可以通過參數配置(-w),默認為false(目前uni-app已支持wxs,不再推薦轉換wxs)
- 支持vue-cli模式,可以通過參數配置(-c),默認為false,即生成為vue-cli項目,轉換完成需運行npm -i安裝包,然后再導入hbuilder x里開發(建議愛折騰人士使用)
- 支持vant轉換,可以通過參數配置(-z),默認為false:自動識別(無須添加參數,工具已支持自動識別vant項目),
如果需要轉換使用vant-weapp組件的小程序項目,必須配置這個參數,否則轉換后有問題。(另外,轉換后的項目,目前僅支持v3和h5兩個平台) - 支持wx.xxx()轉換為uni.xxx(),可以通過參數配置(-r),默認為false(因uni已經對wx相關函數做了兼容,但仍有很多朋友有此需求,特作為可配置項,按需自取)
四、它還有哪些不支持轉換?
- 不支持替換:wxaSortPicker
- setData的變量是props里定義的
- 抽象節點:componentGenerics
- 語法錯誤(原始代碼就有語法錯誤,請仔細檢查,工具無法幫助你將所有代碼都修復)
- 更多請參見miniprogram to uniapp 工具答疑
五、怎么使用?
第一步
在命令行里,運行【 npm install miniprogram-to-uniapp -g 】進行安裝,因為這個包是工具,要求全局都能使用,所以需要-g進行全局安裝。
如果運行npm報錯,請先安裝Node.js,下載地址:https://nodejs.org/zh-cn/

第二步
繼續在命令行里,運行【 wtu -V 】,執行結果如下:
顯示版本號,說明已經安裝成功了。(wtu -> 取自wx to uni之意,后面都用這個全局命令)
第三步
在命令行里,輸入【wtu -i "你的小程序項目路徑"】
注意 -i 前面和后面都有空格!!!
注意 -i 前面和后面都有空格!!!
注意 -i 前面和后面都有空格!!!
如:【wtu -i "E:\zpWork\Project_self\miniprogram-to-uniapp\test\test-wx-to-uni"】 ,回車后即可以在源項目同及目錄得到一個后綴為_uni的目錄,即轉換成功。
轉換前:
轉換后:
轉換后的項目文件對比(左邊是小程序項目,右邊是Uni-app項目目錄):
第四步
將轉換后的xxx_uni項目導入到hbuilder X,
點擊菜單 運行--> 運行到小程序模擬器-->微信開發者工具!(如果是使用了vant的項目,請運行到H5,vant項目轉換后僅支持H5和app)
點擊菜單 運行--> 運行到小程序模擬器-->微信開發者工具!(如果是使用了vant的項目,請運行到H5,vant項目轉換后僅支持H5和app)
點擊菜單 運行--> 運行到小程序模擬器-->微信開發者工具!(如果是使用了vant的項目,請運行到H5,vant項目轉換后僅支持H5和app)
重要的話說三遍!
然后查看轉換后的項目運行到小程序,是否可以正常運行無報錯!
(因為這種轉換非100%,所以至少需要保證 小程序-->uniapp-->小程序仍然能正常運行,再考慮運行到其他小程序或app),
如有報錯,請根據miniprogram to uniapp 工具答疑 進行修改,保證無報錯,然后再運行到其他平台。
工具升級
因為工具更新比較頻繁,安裝后,可以使用如下命令進行升級:
npm update miniprogram-to-uniapp -g