刚在开发一个页面,关掉终端 install 了一个依赖然后继续 npm start,发现无论如何都报错。
首先认为是依赖出错了,毕竟刚安装了一个依赖,结果 remove 了这个依赖,依然不行。根据报错内容,是某个依赖的文件不见了,去看了下的确不见了。
可是我没动过这个依赖呀?
删除掉 node_modules 重新安装全部依赖,发现依然报错,npm list 出这个出问题的包,发现很多都依赖了这个包。
这就很玄学了,我想了半天。
突然,灵机一动,难道是这个包在我开发的时候被作者更新了,而且删掉了包里的某个文件,去 npm 一看历史,这个包的最新的版本(语义化版本),竟然在几分钟前被作者更新了!!!
更坑爹的是,这个作者完全没有遵守语义化版本规矩,明明是同样的 6.x.x,竟然出现了不兼容 api 的现象!!!
然后作者赶紧又更新了一个新版本,修复了这个文件。。。
前后距离几分钟,我正好在这几分钟内更新了这个有问题的版本。。。我的运气可真的是。。
如果不是突然灵机一动,我估计不会想到这个问题。。。
首先认为是依赖出错了,毕竟刚安装了一个依赖,结果 remove 了这个依赖,依然不行。根据报错内容,是某个依赖的文件不见了,去看了下的确不见了。
可是我没动过这个依赖呀?
删除掉 node_modules 重新安装全部依赖,发现依然报错,npm list 出这个出问题的包,发现很多都依赖了这个包。
这就很玄学了,我想了半天。
突然,灵机一动,难道是这个包在我开发的时候被作者更新了,而且删掉了包里的某个文件,去 npm 一看历史,这个包的最新的版本(语义化版本),竟然在几分钟前被作者更新了!!!
更坑爹的是,这个作者完全没有遵守语义化版本规矩,明明是同样的 6.x.x,竟然出现了不兼容 api 的现象!!!
然后作者赶紧又更新了一个新版本,修复了这个文件。。。
前后距离几分钟,我正好在这几分钟内更新了这个有问题的版本。。。我的运气可真的是。。
如果不是突然灵机一动,我估计不会想到这个问题。。。