使用GitHub Action部署React应用至DigitalOcean Droplet时npm build报错
问题原因
GitHub Action的每个run步骤都是独立的shell进程,执行cd frontend后,该步骤的shell结束,后续步骤会自动回到仓库根目录。因此执行npm run build时,实际是在根目录下运行,而根目录的package.json未配置build脚本,导致报错。
解决方案
有两种可行的修复方式:
方式一:合并命令到同一个shell
将目录切换、依赖安装和构建命令放在同一个run步骤中,确保在同一个shell环境下执行:
# 替换原有的cd、npm i、npm run build步骤 - run: | cd frontend npm i npm run build
也可以用&&串联命令:
- run: cd frontend && npm i && npm run build
方式二:指定工作目录
使用working-directory参数,给需要在frontend目录执行的步骤指定工作路径:
# 替换原有的cd、npm i、npm run build步骤 - name: Install frontend dependencies run: npm i working-directory: ./frontend - name: Build React application run: npm run build working-directory: ./frontend
修改后,npm run build会在包含正确package.json的frontend目录下执行,即可找到build脚本完成构建。
内容的提问来源于stack exchange,提问作者Jonh
相关产品推荐
相关产品推荐

