无法将代码变更部署至GitHub Pages,执行npm run deploy报错
解决GitHub Pages部署时“ENOENT: no such file or directory, stat '/xxx/build'”错误
先看你贴出的错误日志:
2048@1.0.0 deploy /home/yaroslav/Desktop/lab/2048
gh-pages -b master -d build
ENOENT: no such file or directory, stat '/home/yaroslav/Desktop/lab/2048/build'
这个错误的核心原因很直白:你的项目根目录下还没生成build文件夹,gh-pages工具找不到要部署的静态文件,自然就抛出了找不到目录的错误。下面是一步步的解决方法:
第一步:先执行生产构建命令
绝大多数前端项目(比如React、Vue这类框架项目)都需要先执行构建命令,把源代码打包成可部署的静态文件,并输出到build(或dist)目录中。
打开终端切换到你的项目根目录,执行对应框架的构建命令:
- React项目:
npm run build - Vue项目:
npm run build(默认输出到dist目录,如果是这种情况,你需要把deploy命令里的-d build改成-d dist) - 其他框架请参考对应文档的构建指令
- React项目:
执行完命令后,去项目根目录确认是否生成了
build文件夹,并且里面有index.html和其他静态资源文件。
第二步:检查package.json的脚本配置
如果执行npm run build时也报错,先检查你的package.json里有没有正确配置build脚本。比如React项目的scripts部分应该类似这样:
"scripts": { "start": "react-scripts start", "build": "react-scripts build", "deploy": "gh-pages -b master -d build" }
如果没有build脚本,你需要根据自己的项目框架添加对应的构建命令。
第三步:确认部署命令的路径是否正确
如果build文件夹确实存在,但还是报错,那可能是你指定的路径有问题:
- 检查
gh-pages -b master -d build里的build是不是正确的相对路径,比如如果你的构建产物在./dist/build,那就要改成-d ./dist/build - 也可以尝试用绝对路径测试,但更推荐用相对路径适配不同环境
第四步:重新执行部署命令
当build文件夹正常生成后,再次运行npm run deploy或者gh-pages -b master -d build,应该就能顺利完成GitHub Pages的部署了。
内容的提问来源于stack exchange,提问作者Ярослав Терещук
相关产品推荐
相关产品推荐

