最近在項目換腳手架的時候,發現一個比較特別的問題,就是每當我有修改代碼的時候,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”,重新運行測試,發現之前那個報錯果然又出來了,所以能肯定是這個變量引起的問題了(這個變量引用其實是另一個很值得探討的問題,后面會另開博客專門討論)。
所以,小伙伴兒們應該知道怎么解決這個問題了哈。