低版本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 分钟前
深入理解JavaScript作用域和闭包,解决变量访问问题
开发语言·javascript·ecmascript
淡忘_cx10 分钟前
使用Jenkins自动化部署vue项目(2.528.2版本)
vue.js·自动化·jenkins
顾北1210 分钟前
AI对话应用接口开发全解析:同步接口+SSE流式+智能体+前端对接
前端·人工智能
iDao技术魔方23 分钟前
深入Vue 3响应式系统:为什么嵌套对象修改后界面不更新?
javascript·vue.js·ecmascript
历程里程碑27 分钟前
普通数组-----除了自身以外数组的乘积
大数据·javascript·python·算法·elasticsearch·搜索引擎·flask
摸鱼的春哥28 分钟前
春哥的Agent通关秘籍07:5分钟实现文件归类助手【实战】
前端·javascript·后端
念念不忘 必有回响31 分钟前
viepress:vue组件展示和源码功能
前端·javascript·vue.js
Amumu1213835 分钟前
Vue3 Composition API(一)
开发语言·javascript·ecmascript
C澒36 分钟前
多场景多角色前端架构方案:基于页面协议化与模块标准化的通用能力沉淀
前端·架构·系统架构·前端框架
崔庆才丨静觅38 分钟前
稳定好用的 ADSL 拨号代理,就这家了!
前端