记录微信小程序转Taro中遇到的问题

环境

系统:windowscss

开发工具:微信开发工具RC V1.02.1907301 + vscodenode

微信基础库版本:2.8.1react

Taro:v1.3.15npm

npm: 6.4.1json

node: v8.12.0小程序

微信小程序代码转Taro

这里我使用了一个简单的垃圾答题小程序来尝试,其中使用了自定义组件,以及自定义导航栏,未使用分包等其余特性,确保项目是正常,转换前玩了下,没有任何报错等问题。windows

在小程序项目目录下执行 `taro convert`

一切都顺利,第一步成功。

在项目目录下会出现一个taroConvert目录,里面为转换后的代码微信小程序

既然转成taro代码了,那么就能够编译成其余平台小程序了,因而我开始尝试

编译成微信小程序

1.安装依赖:微信

在taroConvert目录下执行 npm install 我使用的是cnpmbabel

没有报错。

2.编译运行

npm run dev:weapp --watch

出现一个警告 变量冲突

好吧,找到game.js文件,发现全局的index 和 render函数中for循环index冲突了

修改为i,其实这个变量没有用到,是能够直接移除

3.编译成功

再次编译后成功,打开微信开放工具导入项目,注意是导入taroConvert下的dist目录

出现问题

1.regeneratorRuntime is not defined

1.解决方案:

由于代码中使用了async await 语法,须要安装插件来支持

安装 npm install babel-plugin-transform-runtime

在config/index.js中引入插件

2.sitemap.json 未找到

添加到dist文件下,或者移除该配置,我暂时用不上,因此移除了,在app.js下

3.scene 未定义

这个就比较坑了,在componentDidShow下不能获取n对象

只好本身增长onShow生命周期

4.success属性未定义

缘由是我在state中定义了questions: {} 而render函数中使用了questions.current.success致使报错,加上默认值便可

控制台终于不红了

5.wxml报错了 style属性出问题了

定位到对应代码

修改后

终于编译成功了

6.app下的属性没法获取,须要放到globalData下

修改后,对应的引用都须要修改

展现正常

7.triggerEvent无效

因为微信自定组件使用了triggerEvent,taro并无转换成功

自行改为react 的组件通讯方式

修改完以上内容,完美运行了。

转H5

报错

转百度小程序

大部分布局都没什么问题,因为没有appid就没有验证是否能正常运行

转支付宝小程序

也是存在不少问题,布局错乱

转RN

编译不能经过

大部分css代码都须要调整

总结

很显然,想要将微信小程序经过转成taro再编译成多端开发坑仍是不少,我选择狗带

相关文章
相关标签/搜索