Gatsby部署Firebase时build报Cannot read property 'includes' of undefined求助
可行解决方案
- 先修复代码中的空值异常
你提供的代码片段中,title.toLowerCase().includes(activeLink)这一行存在空值风险:如果title变量为undefined或null,调用toLowerCase会返回undefined,后续调用includes方法就会直接触发你遇到的报错。修改为带空值兜底的写法即可:
isActive={title ? title.toLowerCase().includes(activeLink ?? '') : false}
如果项目配置支持可选链语法,也可以写成更简洁的版本:
isActive={title?.toLowerCase().includes(activeLink ?? '') ?? false}
- 排查图片处理链路的异常
错误日志中同时存在not finished Generating image thumbnails的提示,说明构建中断和图片生成流程有关,按以下步骤排查:
- 检查所有页面引用的本地图片路径是否正确,不存在缺失文件、路径拼写错误的情况
- 将
gatsby-plugin-image、gatsby-transformer-sharp、gatsby-plugin-sharp、gatsby-source-filesystem这几个和图像处理相关的依赖升级到最新稳定版 - 执行
gatsby clean清除本地构建缓存后,删除node_modules文件夹和package-lock.json文件,重新执行npm install安装依赖,再尝试执行gatsby build
- 校验polyfill配置
确认你的Babel配置中已经正确引入array-includes相关的polyfill,没有遗漏低版本语法适配的配置项。
内容的提问来源于stack exchange,提问作者RM2
相关产品推荐
相关产品推荐

