TypeError: RedLock is not a constructor

182 阅读1分钟

情况

首先,这个报错的意思是:RedLock不是构造函数。 那么这个报错的定位是哪里呢? 根据报错位置可以知道,报错为第13行,那么,我们肯定是代码没有被动过,但是怎么就突然报错了呢?

问题定位

排查问题之后,发现,有人将依赖包redlock给升级到了最新版本,原使用版本为:4.2.0,现在被人升级到了5.0.0-beta.2版本,所以导致使用失败;

解决方案

恢复redlock版本为4.2.0,则一切正常了!

TypeError: RedLock is not a constructor

image.png

提醒

根据经验,做出以下提醒,如果在代码不动的前提下,突然不能运行了,可以查看是否为依赖包版本不对; 依赖包版本不对,可能有多重原因造成;

  • 安装时未使用 --save , 导致package.json没有记录你使用的版本号,当其他人使用时,依赖包已更新,导致方法更新/废弃;
  • 有开发者将项目中的依赖包更新至了最新;
  • 不同操作系统(windows、mac)人员提交了代码,导致环境冲突;

寄语

团队合作,规矩是必须有的,自由的思想不代表没有规矩