MEVN应用GitHub Actions构建时制品上传失败问题求助
问题原因
部署失败是工作流配置路径和调整后的文件夹结构不匹配导致的:你将前端代码移到client子目录后,原有配置里的依赖安装范围、构建产物上传路径都没有同步修改,CI流程找不到对应文件就会抛出错误。
修复点说明
- 原配置的依赖安装步骤默认只会读取仓库根目录的
package.json安装后端依赖,不会安装client目录下的前端项目依赖,会导致构建阶段找不到Vue相关依赖报错。 - 你执行
npm run build --prefix client命令时,Vue项目的构建产物默认会输出到client/dist路径,而非仓库根目录的./dist,原配置上传根目录./dist的逻辑自然找不到构建产物。
修正后的完整工作流配置
直接替换原有.github/workflows/Deploy.yml内容即可:
name: Deploy on: push: branches: - main jobs: build: name: Build runs-on: ubuntu-latest steps: - name: Checkout repo uses: actions/checkout@v2 - name: Setup Node uses: actions/setup-node@v1 with: node-version: 16 - name: Install frontend dependencies uses: bahmutov/npm-install@v1 with: working-directory: client - name: Build project run: npm run build --prefix client - name: Upload production-ready build files uses: actions/upload-artifact@v2 with: name: production-files path: ./client/dist deploy: name: Deploy needs: build runs-on: ubuntu-latest if: github.ref == 'refs/heads/main' steps: - name: Download artifact uses: actions/download-artifact@v2 with: name: production-files path: ./dist - name: Deploy to GitHub Pages uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./dist
额外注意事项
如果配置修改后CI跑通但访问GitHub Pages出现白屏、静态资源404,需要检查前端项目配置:
- 若使用Vite,修改
client/vite.config.js中的base字段为你的仓库名路径,例如仓库名为mevn-demo则配置为base: '/mevn-demo/' - 若使用Vue CLI,修改
client/vue.config.js中的publicPath字段为上述同样格式的路径即可。
内容的提问来源于stack exchange,提问作者Vivek Hotti
相关产品推荐
相关产品推荐

