低版本pdfjs升级

提高pdfjs版本

起因:因为pdfjs报出来漏洞,之前的旧项目需要修复漏洞要提高pdfjs的版本

环境:vite5.0.0 vue2.7 dist-pdfjs2.8.335 => 4.2.67

旧版本的pdfjs用的是js,新版本为了规范性都是用的mjs,坑就来了

首先是引入

bash 复制代码
import * as pdfjsLib from 'pdfjs-dist'
import workerSrc from 'pdfjs-dist/build/pdf.worker.min.mjs?url' // Vite 特性

这个我试了好多次,才试到这个引入方式

起初:我将写死在public=>static文件夹下了,因为vite打包的时候pdfjs里面的文件路径会hash加密,就找不到对应文件, 我想着写到这里就不会被加密了,找到文件岂不是易容反掌

错误示范

bash 复制代码
import * as pdfjsLib from 'pdfjs-dist'

pdfjsLib.GlobalWorkerOptions.workerSrc = new URL(
        '/static/pdf.worker.min.mjs',
        import.meta.url
      ).toString()

本地确实是跑起来了,结果一到发版,线上环境就开始疯狂报错

到这里就有人会说了,配置nginx不就好了吗,这报错很明显就是content-type不对吗,你对mjs文件配一下default_type application/javascript不就好了吗,不不不,这在Google是可行的,在edge报大坑,查到的原因是 Chromium Edge 对 绝对 URL + ESM Worker 的 MIME 检查更严格。于是我又写了我一开始写的那一串import workerSrc from 'pdfjs-dist/build/pdf.worker.min.mjs?url'结果,edge是行了,Google又开始报大坑

这会子其实接近尾声了,我又跑到nginx配了一波

nginx配置mjs文件

相关推荐
云水一下3 小时前
从零开始!VMware安装Fedora Workstation 44桌面系统完整教程
前端
小码哥_常4 小时前
安卓黑科技:实现多平台商品详情页一键跳转APP
前端
killerbasd4 小时前
还是迷茫 5.3
前端·react.js·前端框架
不会敲代码15 小时前
TCP/IP 与前端性能:从数据包到首次渲染的底层逻辑
前端·tcp/ip
kyriewen6 小时前
奥特曼借GPT-5.5干杯,而你的Copilot正按Token收钱
前端·github·openai
AC赳赳老秦6 小时前
投标合规提效:用 OpenClaw 实现标书 / 合同自动审核、关键词校验、格式优化,降低废标风险
开发语言·前端·python·eclipse·emacs·deepseek·openclaw
kyriewen6 小时前
代码写成一锅粥?3个设计模式让你的项目“起死回生”
前端·javascript·设计模式
不会敲代码16 小时前
从零搭建 AI 日记助手:用 Milvus 向量数据库实现语义搜索
javascript·openai
千寻girling6 小时前
《 Git 详细教程 》
前端·后端·面试
threelab7 小时前
Three.js UV 图像变换效果 | 三维可视化 / AI 提示词
javascript·人工智能·uv