从mpvue1.x升级到mpvue2.x之后排错之后的一些总结

问题是这样的,我从mpvue1.x升级到mpvue2.x之后,经历了很多报错,但是都一一解决了,这次的错误在后台编译的时候没有任何错误,但是在前端console中出现下面的报错情况

见到这种错误,我想当然的认为我是找不到问题的,就直接用Google去搜索报错信息

 TypeError: Cannot read property 'prototype' of undefined mpvue
复制代码

wxs真的很难用 作为页面的脚本语言,微信这边自己现成的JS不用,自己搞了一套嵌入式脚本语言,里面只能写ES3的语法不说(还不是完整版的ES3语法)没有 Array, Object 对象;或遇到引入 lodash 会报错 TypeError: Cannot read property ‘prototype’ of undefined

小程序开发遇到的一些问题和吐槽

我搜到了这个文档其实,这个文档已经够说明问题了,但是我觉得我这个不应该是lodash 的问题,因为我在mpvue1.x的时候用的好好的,升级之后也不可能出现问题,这是我当时的想法,我直接排除这个错误,连去尝试都没有直接排除了

接下来我做的一些努力(无效努力)
  1. 找到一个已经升级mpvue2.x的项目,去寻找package.json 之间的区别
  2. 反复去比对两个项目之间的区别
  3. 把所有依赖包都调成一样的版本
  4. 怀疑是引入的某些外部组件的问题(开始乱猜了)
  5. 埋怨自己为什么升级的时候不另外新建一个分支(后悔升级了,开始感情化处理了)
  6. 反问自己,总想着从侧面去解决问题(使用Google搜索其他人遇到同样的问题),为什么不从正面去做尝试,难道是因为正面寻找问题太麻烦了吗?

正面解决问题确实稍微麻烦些(被webpack编译过了),但是这个问题已经耽搁了自己太长的时间,有这些时间,早就从正面突破了,

最终突破困境(正面突破):
  1. 找到距离报错信息最近的自己的文件(这里有一个前提就是第三方库都是反复测试过的,确定没有问题的,出错的地方也只有自己的代码)这里很显然是,(http://127.0.0.1:53887/appservice/pages/index/main.js:276:68)这一行
  2. 点击去看看报错位置是哪行代码(点进去看了一眼,就知道问题了,还是那个lodash)
  3. 找到对应的编译之前的文件,将出错的地方注释
  4. 再次编译运行,解决问题

总结:
  1. 如果有多个错误的话,找第一个报错(后面的报错都是因为第一个报错而报错的)
  2. 逐字逐句阅读报错信息(尝试去理解)
  3. Google错误的时候加上使用技术栈的名称(这里是mpvue)
  4. 找到其他人使用时有相同错误记录的时候,一定要注意(记录下可疑的报错位置,特别是自己也是用了相同的库)
  5. 从报错信息正面调试,找到位置
排错的步骤(抽象一下):
  1. 定位 (定位错误代码的位置,阅读报错信息,使用Google,正面检查)
  2. 替换(注释掉)
  3. 运行

这个错误耽搁了我将近8个小时的时间

转载于:https://juejin.im/post/5cb28f116fb9a068b0375934

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值