You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

npm run deploy部署后gh-pages分支未包含CNAME文件问题咨询

问题根因

gh-pages插件部署时仅会上传命令中-d参数指定目录内的文件,当前配置指定的上传目录是build文件夹。你将CNAME文件放在了develop分支的项目根目录,该文件不会被React构建流程打包到build目录中,自然不会被推送到远程gh-pages分支,每次部署都会覆盖之前手动生成的CNAME配置。

不需要为gh-pages插件添加额外特殊配置,只要保证部署执行前build目录内存在内容正确的CNAME文件即可,可通过以下两种方案实现:

可行解决方案

方案一(推荐):将CNAME文件移入public目录

React项目执行构建时,public目录下的所有静态文件会被原样复制到build输出目录。直接将填写好自定义域名的CNAME文件从项目根目录移动到public文件夹下,后续执行npm run deploy时,CNAME会随构建产物一同被推送到gh-pages分支,无需每次部署后手动到GitHub Pages设置页重复配置域名。

方案二:在predeploy脚本中增加复制步骤

如果不想调整CNAME文件的存放位置,可以修改package.json中的predeploy脚本,在构建完成后自动将根目录的CNAME复制到build目录:

  • macOS/Linux系统可将脚本修改为:
"predeploy": "npm run build && cp CNAME build/"
  • Windows系统可将脚本修改为:
"predeploy": "npm run build && copy CNAME build\\"

如果需要跨平台兼容,可以先安装cpx开发依赖:npm i cpx -D,再将脚本修改为:

"predeploy": "npm run build && cpx CNAME build"

注意事项:CNAME文件内仅需填写你的自定义域名,不要添加额外内容,不要带https://、http://这类协议前缀,否则会导致域名解析异常。

内容的提问来源于stack exchange,提问作者ThrowableException

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 10:27:30