最近在项目换脚手架的时候,发现一个比较特别的问题,就是每当我有修改代码的时候,npm会抛出98% after emitting CopyPlugin这个错误。
我在网上搜罗了一遍,大致得到以下解决方案:
1.替换npm使用yarn或cnpm;
2.升级webpack到v4.28.4及以上;
3.重新进行npm install;
4.一个路由一个路由的排查,找到问题;
本人试了前三种,结果完全没有效果。第4种方法看起来太麻烦,本人比较懒,把这个方法作为最后的备选了。于是,决定遵循解决npm出现问题的惯性方法,也就是报哪里的错误就从哪里排查。于是,我打开webpack.config.js,找到CopyWebpackPlugin插件,然后注释掉相关配置。然后测试运行,发现竟然真的不报错了。我倒有点疑惑了,于是细心研究我的代码,相关代码如下:
1 new CopyWebpackPlugin([{ 2 from: 'public', 3 to: global.BASE_URL, 4 toType: 'dir' 5 }, { 6 from: 'static', 7 to: 'static', 8 toType: 'dir' 9 }])
粗一看,也沒有什么大问题,唯一特殊的是“global.BASE_URL” 。于是注释掉这行代码运行测试,发现怎么修改组件代码都不会报之前的错误,隐隐觉得胜利在即。为了验证心中所想,放出刚才注释掉的“
global.BASE_URL”,重新运行测试,发现之前那个报错果然又出来了,所以能肯定是这个变量引起的问题了(这个变量引用其实是另一个很值得探讨的问题,后面会另开博客专门讨论)。
所以,小伙伴儿们应该知道怎么解决这个问题了哈。