低版本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文件

相关推荐
程序员黑豆1 小时前
Java包装类:基本类型与对象的桥梁
java·前端·ai编程
bugcome_com4 小时前
JWT 知识小课堂:从入门到精通,一文吃透 JSON Web Token
前端·json
To_OC4 小时前
写了三天 Next.js,我的 React 世界观被拆了又装回去
前端·全栈·next.js
独泪了无痕4 小时前
viewer.js 安装与配置指南:实现图片预览功能
前端·vue.js
起床学FPGA6 小时前
AI回答问题之后,会自动跳到最下面的问题
开发语言·javascript·ecmascript
Fluxart.ai6 小时前
电商商品图审核怎么自动化?规则引擎、人工复核与发布门禁
java·前端·自动化
why技术7 小时前
AI 写的文章,可能都带着手敲一遍都去不掉的“隐形水印”。
前端·人工智能·后端
愚公搬代码7 小时前
【愚公系列】《Android应用案例开发大全》016-LBS类应用掌上杭州(辅助工具类的开发)
android·前端
CodeSheep7 小时前
又一个华为天才少年,离职了!
前端·后端·程序员
kyriewen7 小时前
面试官说"打开你的AI工具"——我才发现,他考的根本不是写代码
前端·人工智能·面试