使用GitHub Actions部署Nuxt 3应用至GitHub Pages时预渲染报错
Nuxt 3部署GitHub Pages时预渲染路由报错问题
正在学习CI/CD相关知识,尝试通过GitHub Actions将Nuxt 3应用部署至GitHub Pages。但在GitHub Actions执行nuxt generate命令时,应用中的两个路由(/pinia-test和/users)始终出现预渲染错误。本地环境运行nuxt generate时完全没有报错,推测该问题与GitHub Actions环境有关。
GitHub Actions运行日志(错误信息在末尾)
Static HTML export with Nuxt Run npm run generate npm run generate shell: /usr/bin/bash -e {0} env: GITHUB_PAGES: true > generate > nuxt generate [log] Nuxi 3.6.5 [log] Nuxt 3.6.5 with Nitro 2.5.2 [warn] Using experimental payload extraction for full-static output. You can opt-out by setting `experimental.payloadExtraction` to `false`. [info] Building client... [info] vite v4.3.9 building for production... [info] transforming... [info] ✓ 143 modules transformed. [info] rendering chunks... [info] computing gzip size... [info] .nuxt/dist/client/manifest.json 3.60 kB │ gzip: 0.58 kB [info] .nuxt/dist/client/_nuxt/error-500.aa16ed4d.css 1.95 kB │ gzip: 0.74 kB [info] .nuxt/dist/client/_nuxt/error-404.23f2309d.css 3.63 kB │ gzip: 1.12 kB [info] .nuxt/dist/client/_nuxt/index.bbc96c86.css 12.13 kB │ gzip: 2.49 kB [info] .nuxt/dist/client/_nuxt/default.6c42ce1b.js 0.22 kB │ gzip: 0.19 kB [info] .nuxt/dist/client/_nuxt/index.4de762ee.js 0.26 kB │ gzip: 0.21 kB [info] .nuxt/dist/client/_nuxt/LayoutHeader.0c5ff510.js 0.30 kB │ gzip: 0.21 kB [info] .nuxt/dist/client/_nuxt/PageTwo.d35c4254.js 0.66 kB │ gzip: 0.42 kB [info] .nuxt/dist/client/_nuxt/index.9a8be0fb.js 1.01 kB │ gzip: 0.61 kB [info] .nuxt/dist/client/_nuxt/layout.a2ac6278.js 1.32 kB │ gzip: 0.67 kB [info] .nuxt/dist/client/_nuxt/error-500.ad8bffd3.js 1.88 kB │ gzip: 0.99 kB [info] .nuxt/dist/client/_nuxt/index.38caa40e.js 2.02 kB │ gzip: 0.95 kB [info] .nuxt/dist/client/_nuxt/pinia.6d855e92.js 3.33 kB │ gzip: 1.72 kB [info] .nuxt/dist/client/_nuxt/error-404.ba077f45.js 6.53 kB │ gzip: 2.91 kB [info] .nuxt/dist/client/_nuxt/index.764b2877.js 95.68 kB │ gzip: 16.14 kB [info] .nuxt/dist/client/_nuxt/entry.f95dd8db.js 144.02 kB │ gzip: 54.40 kB [info] ✓ built in 2.79s [success] Client built in 2810ms [info] Building server... [info] vite v4.3.9 building SSR bundle for production... [info] transforming... [info] ✓ 95 modules transformed. [info] rendering chunks... [info] .nuxt/dist/server/_nuxt/index-styles.c4f3f660.mjs 0.08 kB [info] .nuxt/dist/server/_nuxt/error-404-styles.cf00f4cc.mjs 0.15 kB [info] .nuxt/dist/server/_nuxt/error-500-styles.a001b7ed.mjs 0.15 kB [info] .nuxt/dist/server/styles.mjs 0.44 kB [info] .nuxt/dist/server/_nuxt/index-e12b288f.js 0.22 kB │ map: 5.28 kB [info] .nuxt/dist/server/_nuxt/default-dc738482.js 1.06 kB │ map: 0.13 kB [info] .nuxt/dist/server/_nuxt/island-renderer-111fb402.js 1.11 kB │ map: 1.43 kB [info] .nuxt/dist/server/_nuxt/LayoutHeader-747fd40b.js 1.18 kB │ map: 0.14 kB [info] .nuxt/dist/server/_nuxt/index-cb071b83.js 1.61 kB │ map: 0.14 kB [info] .nuxt/dist/server/_nuxt/error-500-styles-1.mjs-0a86f27a.js 2.17 kB │ map: 0.12 kB [info] .nuxt/dist/server/_nuxt/PageTwo-95ad2d12.js 2.31 kB │ map: 1.06 kB [info] .nuxt/dist/server/_nuxt/index-3a419ccf.js 2.63 kB │ map: 1.99 kB [info] .nuxt/dist/server/_nuxt/error-500-90d6b764.js 3.10 kB │ map: 3.78 kB [info] .nuxt/dist/server/_nuxt/layout-fe23ec6d.js 3.33 kB │ map: 7.04 kB [info] .nuxt/dist/server/_nuxt/index-9e1c42d7.js 3.47 kB │ map: 3.65 kB [info] .nuxt/dist/server/_nuxt/error-404-styles-1.mjs-6ef6e240.js 3.86 kB │ map: 0.12 kB [info] .nuxt/dist/server/_nuxt/error-404-1f4e83a5.js 9.75 kB │ map: 18.91 kB [info] .nuxt/dist/server/_nuxt/index-styles-1.mjs-bfad4fc1.js 12.38 kB │ map: 0.11 kB [info] .nuxt/dist/server/server.mjs 33.74 kB │ map: 79.34 kB [info] .nuxt/dist/server/_nuxt/index-429347c0.js 97.95 kB │ map: 107.00 kB [info] ✓ built in 1.62s [success] Server built in 1634ms [success] [nitro] Generated public .output/public [info] [nitro] Initializing prerenderer [info] [nitro] Prerendering 7 initial routes with crawler [log] [nitro] ├─ /PageTwo (65ms) [log] [nitro] ├─ /sample-page (62ms) [log] [nitro] ├─ /pinia-test (82ms) (Error: [500] ) [log] [nitro] ├─ /users (83ms) (Error: [500] ) [log] [nitro] ├─ /200.html (63ms) [log] [nitro] ├─ /404.html (63ms) [log] [nitro] ├─ / (81ms) [log] [nitro] ├─ /PageTwo/_payload.json (1ms) [log] [nitro] ├─ /sample-page/_payload.json (1ms) [log] [nitro] ├─ /_payload.json (1ms) [log] [nitro] Errors prerendering: [log] [nitro] ├─ /pinia-test (500) [log] [nitro] ├─ /users (500) [log] [nitro] Error: Exiting due to prerender errors. at prerender (node_modules/nitropack/dist/shared/nitro.1db3349c.mjs:189:11) at async node_modules/nuxt/dist/index.mjs:2641:7 at async build (node_modules/nuxt/dist/index.mjs:3794:5) at async Object.invoke (node_modules/nuxi/dist/chunks/build.mjs:59:5) at async Object.invoke (node_modules/nuxi/dist/chunks/generate.mjs:36:5) at async _main (node_modules/nuxi/dist/cli.mjs:49:20) Error: Process completed with exit code 1.
GitHub Actions工作流文件
# Sample workflow for building and deploying a Nuxt site to GitHub Pages # # To get started with Nuxt see: https://nuxtjs.org/docs/get-started/installation # name: Deploy Nuxt site to Pages on: # Runs on pushes targeting the default branch push: branches: ["main"] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. concurrency: group: "pages" cancel-in-progress: false jobs: # Build job build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Detect package manager id: detect-package-manager run: | if [ -f "${{ github.workspace }}/yarn.lock" ]; then echo "manager=yarn" >> $GITHUB_OUTPUT echo "command=install" >> $GITHUB_OUTPUT exit 0 elif [ -f "${{ github.workspace }}/package.json" ]; then echo "manager=npm" >> $GITHUB_OUTPUT echo "command=ci" >> $GITHUB_OUTPUT exit 0 else echo "Unable to determine package manager" exit 1 fi - name: Setup Node uses: actions/setup-node@v3 with: node-version: "18" cache: ${{ steps.detect-package-manager.outputs.manager }} - name: Setup Pages uses: actions/configure-pages@v3 with: # Automatically inject router.base in your Nuxt configuration file and set # target to static (https://nuxtjs.org/docs/configuration-glossary/configuration-target/). # # You may remove this line if you want to manage the configuration yourself. static_site_generator: nuxt - name: Restore cache uses: actions/cache@v3 with: path: | dist .nuxt key: ${{ runner.os }}-nuxt-build-${{ hashFiles('dist') }} restore-keys: | ${{ runner.os }}-nuxt-build- - name: Install dependencies run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} - name: Static HTML export with Nuxt run: npm run generate - name: Upload artifact uses: actions/upload-pages-artifact@v2 with: path: ./dist # Deployment job deploy: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest needs: build steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v2
内容的提问来源于stack exchange,提问作者Nal Skipper
相关产品推荐
相关产品推荐

