背景:公司上古项目用的是vue2,要用到web worker,按照网上网友的介绍用法,安装worker-loader,然后...再然后...此处省略3千字。
遇到的问题:如下图,引用in ./src/workers/xx.worker.js报错“Module build failed: Error: Cannot find module 'webpack/lib/web/FetchCompileWasmTemplatePlugin'”,真让人百撕不得骑姐。看了好多文章,然并卵,头大。只能自己硬着头皮解决了。
import Worker from '@/workers/xx.worker.js'
const imageParseWorker = new Worker()
解决思路: 解读“Cannot find module 'webpack/lib/web/FetchCompileWasmTemplatePlugin”大概意思是找不到webpack的这个FetchCompileWasmTemplatePlugin插件,看来worker-loader要用到这个插件,然后我看了项目的版本是webpack3,也是上古的打包版本了。
解决方法:
第一种方法: 升级webpack4以上,像我们这种上古项目,升级必定一大堆兼容性问题,还不如噶了我!!!不过公司给时间,我必定升级到webpack5。
第二种方法:这个方法也是我用的方法,降低worker-loader版本,当前最新的大版本是3点几,我安装的版本是2.0.0,完美解决问题。
npm install worker-loader@2.0.0 -D