vue项目中如何引入zip压缩包之解决方案

最近在做项目中遇到了一个项目本地化的问题,里面有一个核心的问题是,前端需要根据后端返回的压缩包进行压缩包的解析处理。所以前端项目里需要引入这个压缩包,这个时候就遇到了很多比较坑的问题,因为项目最终是打包成一个dist目录,

所以很多方案都不行。

这是之前尝试的几种不行的方案:

方案一:发起axios请求去请求压缩包,这个方案打包后,控制台会出现axios跨域的警告问题;

方案二:使用JsZipUtils 这个插件,参考这个文章学习的,https://blog.csdn.net/weixin_44356292/article/details/108070643?spm=1001.2014.3001.5501,方案本地服务器确实可以实现,不过打包后,还是会通过发请求的方式去请求zip包,最后也会出现报跨域的错误,所以也是不行

方案三:通过webpack 插件配置,配置允许zip包引入,这种方案也行不通

方案四:通过一个webpack插件,忽略某个目录下的文件,把zip包放在一个自定义目录下,然后配置下,忽略打包自定义这个目录,结果还是不行,因为webpack打包机制的问题,只要是用import,或者require的写法引入的文件,都会被打包进去,但是博主的需求是需要动态替换这个压缩包,这就无法满足需求了

...

想了很久,最后的方案还是不行,就在这时,灵光一动,在想把zip包转成base64 字符串,通过在index.html中script标签js引入的方式来绕过webpack打包的机制,zip包也是通过字符串的方式放到js中,再动态引入,引入后,把base64转成ArrayBuffer文件流,就可以了

最后打包后,动态去替换压缩包这个js文件,index.html文件刷新后也是能展示最新的结果,这样就完成了静态目录下动态引入zip包的问题了 !

相关推荐
孟陬7 分钟前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端
BER_c7 分钟前
前端权限校验最佳实践:一个健壮的柯里化工具函数
前端·javascript
兆子龙11 分钟前
别再用 useState / data 管 Tabs 的 activeKey 了:和 URL 绑定才香
前端·架构
sudo_jin11 分钟前
前端包管理器演进史:为什么 npm 之后,Yarn 和 pnpm 成了新宠?
前端·npm
敲敲敲敲暴你脑袋40 分钟前
写个添加注释的vscode插件
javascript·typescript·visual studio code
叁两1 小时前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
golang学习记1 小时前
GitLens 十大神技:彻底改变你在 VS Code 中的 Git 工作流
前端·后端·visual studio code
SuperEugene1 小时前
后台权限与菜单渲染:基于路由和后端返回的几种实现方式
前端·javascript·vue.js
兆子龙1 小时前
WebSocket 入门:是什么、有什么用、脚本能帮你做什么
前端·架构
csdn飘逸飘逸1 小时前
Autojs基础-全局函数与变量(globals)
javascript