一大早就有一个小bug要解决,刚吃的早饭瞬间又不香了,giao~~~
    三分钟解决bug,信心满满带着我的新分支就要往测试环境冲击,然而突如其来的报错让我直接闪了老腰
    项目中依赖包报错:node.getIterator is not a function - 图1

    这不就是简单的一个报错吗,我们可以了解到postcss这个依赖包报错了,肯定是小版本升级又不遵守npm的规定,那不就简单了吗,冲!

    查看了一下package.json,好像没有依赖这个包,那这个包肯定是其他包的依赖了,那我总不能一个一个翻吧,那么多包,一个一个来不得累死了。

    找出我们项目中可能与postcss相关的包

    1. "less": "",
    2. "less-loder": "",
    3. "css-loder": "",
    4. "mini-css-extract-plugin": "0.9.0",
    5. "optimize-css-assets-webpack-plugin": "^5.0.3",
    6. "postcss-flexbugs-fixes": "4.1.0",
    7. "postcss-loader": "3.0.0",
    8. "postcss-normalize": "8.0.1",
    9. "postcss-preset-env": "^6.7.0",
    10. "postcss-safe-parser": "4.0.1",
    11. "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的最新版本,导致项目打包失败,认为这是一个很不理智的做法,应该在大版本迭代进行

    项目中依赖包报错:node.getIterator is not a function - 图2
    项目中依赖包报错:node.getIterator is not a function - 图3

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