一大早就有一个小 bug 要解决,刚吃的早饭瞬间又不香了,giao~~~
三分钟解决 bug,信心满满带着我的新分支就要往测试环境冲击,然而突如其来的报错让我直接闪了老腰

这不就是简单的一个报错吗,我们可以了解到 postcss 这个依赖包报错了,肯定是小版本升级又不遵守 npm 的规定,那不就简单了吗,冲!
查看了一下 package.json,好像没有依赖这个包,那这个包肯定是其他包的依赖了,那我总不能一个一个翻吧,那么多包,一个一个来不得累死了。
找出我们项目中可能与 postcss 相关的包

1
2
3
4
5
6
7
8
9
10
11
  "less": "",
"less-loder": "",
"css-loder": "",
"mini-css-extract-plugin": "0.9.0",
"optimize-css-assets-webpack-plugin": "^5.0.3",
"postcss-flexbugs-fixes": "4.1.0",
"postcss-loader": "3.0.0",
"postcss-normalize": "8.0.1",
"postcss-preset-env": "^6.7.0",
"postcss-safe-parser": "4.0.1",
"reactcss": "^5.6.2",

大概就是这几个,还有一些忘记了,首先我将这些包分为两大类:
带有 postcss 和不带的,然后先删除带有 postcss 的”^”,删除 package.lock.json 和 node_modules,重新下载打包一次,发现还是报错,那么退到上一步。
我们删除不带 postcss 的”^”,然后在删除依赖包,重新打包,成功了,那说明就定位在这几个包里面了,接下来的分为 less 和 css,我选择先对 less 进行操作,失败了。
那就定位在几个 css 的包里面了,css-loder 肯定不太可能,那就将“optimize-css-assets-webpack-plugin”和“reactcss”操作一番,打包成功了,距离成功就只剩下最后一步了,我喜欢长的,自然先对“optimize-css-assets-webpack-plugin”进行了操作,嘿嘿,打包成功了,十几分钟解决问题,最后取消了这个依赖包的向上兼容,固定到一个版本,部署成功,欧耶!
然后我去 github 看了一番,好家伙,这刚 5.0.7 版本刚发布了十个小时,下面已经有些人发现不对了,开始跟作者进行互动,大家都觉得小版本更新使用了 postcss 的最新版本,导致项目打包失败,认为这是一个很不理智的做法,应该在大版本迭代进行更新。



说这么多呢,主要讲一个解决问题的思路,每个问题是一个新的挑战,如果这个问题随便百度就有答案,还好说,但是很多问题明显都是一个新的问题,需要自己去研究,去想办法解决问题,我们也是在这种解决问题的途中逐渐成长,有什么更有效的方法,还要请教大佬们偷偷教一手,让我头发在头上多呆几天~