Vite+Vue3引入Transloadit报错:无法读取undefined的'Resolver'属性
问题原因
你引入的transloadit@3.0.2是Node.js服务端专属SDK,依赖的got、cacheable-lookup包仅支持Node环境,内部调用了Node原生的dns模块,浏览器环境不存在该API,因此触发读取Resolver属性失败的报错,和Vite基础配置无关。
解决方案
方案1:替换为浏览器端适用的Transloadit客户端(推荐)
- 先卸载服务端SDK:
npm uninstall transloadit
- 安装浏览器端适配的Transloadit工具,可选择两种方案:
- 官方推荐的文件上传集成方案:安装
@uppy/core+@uppy/transloadit,Uppy天然适配Vue3,可直接配合组件完成图片/PDF的上传、Transloadit任务处理全流程 - 轻量独立的浏览器端SDK:安装
transloadit-client,该包剔除了Node专属依赖,可直接在前端项目中引入调用
- 官方推荐的文件上传集成方案:安装
方案2:后端代理调用(适合需要隐藏Transloadit密钥的场景)
如果业务要求必须使用服务端SDK处理逻辑,可以把Transloadit的调用逻辑移到后端接口实现,前端只需要调用自己的后端接口完成相关操作,避免前端直接引入Node专属依赖。
补充说明
之前在vite.config.js中添加的process.versions注入配置,可根据后续引入依赖的兼容性决定是否保留,对本次报错无修复作用。
内容的提问来源于stack exchange,提问作者Gonzalo Hirsch
相关产品推荐
相关产品推荐

