记一次bug修复历程

前两天重装了电脑,环境啥都重新安装了一下, 本来挺开心的,结果今天跑项目时发现了爆红

npm run serve 报错:

This dependency was not found

uni-shared in ./node_modules/@dcloudio/uni-h5/src/core/helpers/params.js

To install it, you can run: npm install --save uni-shared

在node_modules里找到对应文件 node_modules/@dcloudio/uni-h5/src/core/helpers/params.js

import {
  isFn,
  hasOwn,
  toRawType,
  isPlainObject
} from 'uni-shared'
...

发现文件顶部有这么一行引入,但实际上没发现uni-shared对应的文件,去网上看看有没有相关答案

网上查找

看起来像是包依赖的问题,开始解决

1 npm

npm 搜索 uni-shared 显示 not found 实际上npm不存在这个包

2 社区QQ群

没人提供出有价值的答案, 有的说建议去github看看

3 github

没有搜索到相关 isuse

那再找找吧,没有的话就自己就提交新的isuse

4 百度

没有搜索到相关结果,未找到有价值信息

各种途径都试了下,没有答案,那就自己动手,丰衣足食,开始debug吧:

自己解决

首先看起来像是npm包的问题,那就重新安装依赖试试

1. 重新安装依赖

可能是node_modules版本不对,重新装下试试

删除node_modules 重新 npm install

npm run serve 依然失败

2. 使用yarn安装依赖

可能是npm不好用,换yarn试试

删除node_modules, 使用 yarn install

失败

3. 升级包依赖

可能uni-app最新的包没问题, 将 dcloudio相关的包升级至最新试试

失败

重试1

失败

重试2

失败

4. 复制可用包依赖

使用 cli 新建一个项目(可成功运行),把新项目的node_modules及 dcloudio 相关的package.json复制过来,

失败

这一步可以大致判断出,包本身可能是没问题的,有可能是代码问题

5. 复制代码至新的空项目

使用 cli 新建一个项目(运行成功), 把旧项目的src目录复制过来

运行失败

果然是src目录里出的问题,看来原因在自己身上

6. git

通过git查找历史commit,发现找bug前有一段奇怪的代码

// api.js
...
import params from "@dcloudio/uni-h5/src/core/helpers/params";
...


// 会员充值卡列表
export async function getMemberList(params) {
  return get('/member/index', {...params, _store_id})
}

因为webstorm会自动建立索引,开发时再对象里键入"par", webstorm 自动联想到params,习惯性按了回车,结果索引到了 ‘@dcloudio/uni-h5/src/core/helpers/params.js’
当时没发现webstorm自动引入了改文件,结果运行就出了这个问题
因为报错信息有限,误导因为是包的问题,所以一开始方向就错了,实际是自己开发过于依赖IDE的索引,没有及时发现问题

总结

智能的IDE不一定每次联想都是好事, 而且如果一开始仔细看git纪录的话,可能会更早解决以后应多注意,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值