You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Webpack(结合Angular)不打包new Worker(),遇跨源访问错误求助

Angular项目中Webpack 5未处理pdfjs-dist v3的new Worker()代码问题

问题背景

  • 将pdfjs-dist从v2升级到v3后,加载Worker的Webpack集成方式改为Webpack 5官方支持的new Worker()语法(原使用worker-loader可正常运行)
  • 库中相关代码如下:
pdfjs.GlobalWorkerOptions.workerPort = new Worker(
  new URL("./build/pdf.worker.js", import.meta.url)
);
  • 在项目中手动测试相同逻辑时,出现以下跨源错误:
Uncaught DOMException: Failed to construct 'Worker': Script at 'file:///myprojectpath/node_modules/pdfjs-dist/build/pdf.worker.js' cannot be accessed from origin 'http://localhost:9003'.

排查情况

  • Webpack未对上述new Worker()代码进行打包或转换,import.meta.url指向本地绝对路径,也未生成对应的Worker代码块
  • 怀疑是Angular自定义的WebWorker处理机制导致该问题,但尚未确认具体原因
  • 参考过非Angular场景的同类问题,已确认Angular生成的Webpack配置中output.publicPath值为'',符合该场景下的解决方案要求

疑问

为何Webpack会忽略new Worker()代码?这是Angular的问题吗?

内容的提问来源于stack exchange,提问作者Morgan Touverey Quilling

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 08:52:38