Gatsby项目在AWS Amplify部署失败,本地Node版本达标仍报错
问题根因与解决方案
AWS Amplify部署失败处理
首先明确:你本地的Node版本和AWS Amplify云构建环境的Node版本完全独立,日志明确显示构建环境使用的Node版本为v12.21.0,低于Gatsby 4.x要求的最低v14.15.0,这是部署失败的直接原因,和你本地的Node版本没有关系。
你不需要修改.gitignore提交public目录,Gatsby部署时会在云环境自动执行构建生成产物,提交本地的public目录只会产生冗余文件,建议恢复原来的忽略配置。
解决版本不匹配的问题可以二选一:
- 进入Amplify应用控制台 → 构建设置 → 环境变量,新增变量
NODE_VERSION,值设置为16或18(均为兼容Gatsby 4+的LTS版本),保存后重新触发构建即可。 - 在项目根目录新建
.nvmrc文件,写入需要的Node版本号例如16.20.0,Amplify会自动识别nvm配置切换对应版本。
Github Pages显示默认启动页处理
该问题是由于Github Pages默认不会自动执行Gatsby构建流程,你大概率是直接将项目根目录设为了Pages发布源,因此只会展示仓库自带的默认静态页面。
解决方案如下:
- 本地安装gh-pages依赖:
npm install gh-pages --save-dev
- 编辑项目的
package.json文件:- 新增
homepage字段:"homepage": "https://你的Github用户名.github.io/你的仓库名" - 在
scripts字段中新增部署命令:"deploy": "gatsby build && gh-pages -d public -b gh-pages"
- 新增
- 本地执行
npm run deploy,工具会自动构建产物并推送到仓库的gh-pages分支 - 进入仓库的Pages设置页面,将发布源修改为
gh-pages分支的根目录,保存后等待生效即可。
内容的提问来源于stack exchange,提问作者zzzz
相关产品推荐
相关产品推荐

