Azure部署React应用时react-scripts执行npm run build报错找不到文件
故障原因及排查方案
最高发原因:文件大小写不匹配
本地开发环境如果是Windows/macOS,默认文件系统大小写不敏感,即使你导入路径的大小写和实际文件名不一致也能正常解析;但GitHub Actions的运行环境为Linux,文件系统大小写完全敏感,只要大小写不一致就会报错。
举个例子:
- 实际文件名为
src/components/faq/faq.jsx - 你在代码里写的导入语句是
import FAQ from '../../components/faq/FAQ'
这种情况本地构建完全正常,但Linux环境下就会提示找不到文件。
其他可能原因
- 文件未提交到Git仓库:确认你本地的
src/components/faq/FAQ相关文件已经执行git add、git commit并推送到了GitHub,可直接在GitHub仓库的对应路径下检查是否存在该文件。 - Git忽略规则拦截了文件:检查项目根目录的
.gitignore文件,是否存在匹配faq目录或FAQ文件的规则,导致该文件没有被上传到仓库。 - Azure Static Web Apps工作流配置错误:检查
.github/workflows目录下的Azure静态站点部署配置文件,确认app_location参数配置的路径和你项目的根目录(package.json所在目录)一致,例如项目根目录就是仓库根目录的话,该参数应该配置为app_location: "/",如果路径配置错误会导致构建时的根目录偏移,相对路径解析失败。 - 构建环境差异:确认GitHub Actions中使用的Node.js版本和你本地开发环境的Node.js版本一致,不同版本的模块解析逻辑可能存在差异,可在工作流中添加Node.js版本指定步骤,和本地版本对齐。
快速验证方法
你可以在本地打开WSL(Linux子系统),拉取最新的仓库代码后执行npm run build,如果也能复现找不到文件的报错,就可以100%确认是大小写或者文件未提交的问题。
内容的提问来源于stack exchange,提问作者Austin Howard
相关产品推荐
相关产品推荐

