文章目录
- 前言
- 一、rollup的generateBundle钩子?
- 二、遇到bug之前
- 三、bug解决
- 总结
前言
本人在学习过程中,发现一个基于vite的项目,在打包的过程中遇到了一个bug,就是我在学习开发一个vite插件功能,我需要获取到打包的产物信息。所以就用到了rollup的一个钩子generateBundle。发现打包后从这个钩子里没有拿到我原来没有打包后的产物的文件信息。我就很纳闷,我刚开始以为是rollup更新了,不输出这个原来的信息了,才发现是我愚蠢了。下面我来演示一下我的bug之路。(此文章没有啥炫技,只是学习过程中遇到的一些坑分享一下,记录学习的过程。)
一、rollup的generateBundle钩子?
调用 generateBundle 钩子,这个钩子的入参里面会包含所有的打包产物信息,包括 chunk (打包后的代码)、asset(最终的静态资源文件)。在这个钩子中你做自定义自己的操作,比如:可以在这里删除一些 chunk 或者 asset,最终被删除的内容将不会作为产物输出
二、遇到bug之前
我在调试过程中,用rollup的generateBundle这个钩子,看一下打包过程中的产物输出情况,但发现打包后的资源文件带上了has啥的,但是originalFileName是为空的,就搞不懂啥情况,搞了一个多小时,最后发现是项目文件存在目录有问题(咨询了一下一位前端大佬up主:(远方)
才知道问题所在。
三、bug解决
项目目录最好不要出现英文,我知道又有人会说:这不是基本的嘛啥啥,但搞不起有些人就喜欢这么做,比如我。
最后换了英文目录终于看到了原来的文件信息。
总结
为确保稳定性,建议遵循英文路径的常规开发规范,尤其在团队协作或 CI/CD 环境中。通过调整路径或工具链配置,可有效避免中文路径导致的打包问题。如需进一步调试,可提供具体的错误日志和项目结构以分析具体原因。