vite-ssg icon indicating copy to clipboard operation
vite-ssg copied to clipboard

Broken Builds in AWS-Amplify

Open armenr opened this issue 4 years ago • 1 comments

I'm using the Vitesse boilerplate, but I am opening this issue here because there appears to be an intermittent issue with my builds in Amplify (it's just AWS CodeBuild under the hood).

TL;DR -

  1. Builds fail in Amplify with pnpm
  2. Builds work locally with pnpm
  3. Builds work in Amplify with Yarn
  4. Build errors appear to be related to a dependency of vue-ssg, but I can't figure out what/which dependency

I was tinkering with this deployment so I could make a contribution to the vite-ssg documentation, to add a section for Amplify build/deployment under "Deploying A Static Site" for the vite-ssg docs.

I will intermittently get working builds, and then builds will break. On my end, I have literally not changed anything in the vitesse boilerplate. All I did was set up pnpm workspaces, and moved the frontend/client code into /packages/client.

I added 1 new file (Amplify.ts) to /packages/client/src/modules and its contents are very basic:

import { UserModule } from '~/types'

export const install: UserModule = ({ isClient /* router */ }) => {
  // eslint-disable-next-line no-console
  console.log('Is this a client?', isClient)
}

I can't understand why, but I will intermittently get the following errors during builds (my guess is that I'm missing something stupid/simple). I wonder if maybe something in vite-ssg's dependency graph is the real issue?

PNPM Build logs in Amplify (Amazon Linux build container, using NodeJS LTS via nvm)

The build logs are below, and any help is much appreciated! :)

2021-07-20T23:08:31.240Z [INFO]: # Executing command: pnpm build:client
2021-07-20T23:08:31.534Z [INFO]: > [email protected] build:client /codebuild/output/src050096663/src/vitesse-two
                                 > pnpm run build --filter @beepbeep/client
2021-07-20T23:08:31.855Z [INFO]: > @beepbeep/[email protected] build /codebuild/output/src050096663/src/vitesse-two/packages/client
                                 > cross-env NODE_ENV=production vite-ssg build
2021-07-20T23:08:33.854Z [INFO]: [vite-ssg] Build for client...
2021-07-20T23:08:33.899Z [INFO]: vite v2.4.2 building for production...
2021-07-20T23:08:33.952Z [INFO]: transforming...
2021-07-20T23:08:36.304Z [INFO]: ✓ 162 modules transformed.
2021-07-20T23:08:36.668Z [INFO]: rendering chunks...
2021-07-20T23:08:38.825Z [INFO]: dist/index.html                                1.13kb
2021-07-20T23:08:38.825Z [INFO]: dist/manifest.webmanifest                      0.38kb
                                 dist/ssr-manifest.json                         17.25kb
2021-07-20T23:08:38.838Z [INFO]: dist/assets/about.0f8a0ec6.js                  1.77kb / brotli: 0.59kb
2021-07-20T23:08:38.838Z [INFO]: dist/assets/README.f125e287.js                 1.21kb / brotli: 0.43kb
2021-07-20T23:08:38.839Z [INFO]: dist/assets/virtual_pwa-register.e82f2316.js   5.37kb / brotli: 1.96kb
2021-07-20T23:08:38.841Z [INFO]: dist/assets/[name].f840e646.js                 1.31kb / brotli: 0.68kb
2021-07-20T23:08:38.842Z [INFO]: dist/assets/[...all].3c74ba08.js               0.21kb / brotli: 0.16kb
2021-07-20T23:08:38.844Z [INFO]: dist/assets/home.be751833.js                   0.36kb / brotli: 0.23kb
2021-07-20T23:08:38.845Z [INFO]: dist/assets/404.18e0b9fe.js                    1.02kb / brotli: 0.52kb
2021-07-20T23:08:38.866Z [INFO]: dist/assets/app.19649441.js                    19.29kb / brotli: 4.95kb
2021-07-20T23:08:38.882Z [INFO]: dist/assets/app.a6001449.css                   18.18kb / brotli: 3.70kb
2021-07-20T23:08:39.070Z [INFO]: dist/assets/vendor.e6ca6862.js                 133.44kb / brotli: 38.83kb
2021-07-20T23:08:42.381Z [INFO]: [vite-ssg] Build for server...
2021-07-20T23:08:42.434Z [INFO]: vite v2.4.2 building SSR bundle for production...
2021-07-20T23:08:42.477Z [INFO]: transforming...
2021-07-20T23:08:42.821Z [INFO]: ✓ 54 modules transformed.
2021-07-20T23:08:42.854Z [INFO]: rendering chunks...
2021-07-20T23:08:42.855Z [INFO]: .vite-ssg-temp/manifest.webmanifest        0.38kb
2021-07-20T23:08:42.855Z [INFO]: .vite-ssg-temp/main.js                     78.16kb
                                 .vite-ssg-temp/assets/style.96324cd4.css   21.78kb
2021-07-20T23:08:42.908Z [INFO]: Is this a client? false
2021-07-20T23:08:42.912Z [INFO]: [vite-ssg] Rendering Pages... (3)
2021-07-20T23:08:42.912Z [INFO]: Is this a client? false
2021-07-20T23:08:42.913Z [INFO]: Is this a client? false
2021-07-20T23:08:42.913Z [INFO]: Is this a client? false
2021-07-20T23:08:42.916Z [WARNING]: [Vue warn]: Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.
2021-07-20T23:08:42.917Z [WARNING]: TypeError: Cannot read property 'modules' of undefined
                                    at _sfc_main$4.setup (/codebuild/output/src050096663/src/vitesse-two/packages/client/.vite-ssg-temp/main.js:1131:15)
                                    at callWithErrorHandling (/codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/@[email protected]/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:119:22)
                                    at setupStatefulComponent (/codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/@[email protected]/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:5631:29)
                                    at setupComponent (/codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/@[email protected]/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:5612:11)
                                    at renderComponentVNode (/codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/[email protected]_2361f5618aa0257c80cd75abba1fcee1/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js:182:17)
                                    at /codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/[email protected]_2361f5618aa0257c80cd75abba1fcee1/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js:440:30
                                    at Generator.next (<anonymous>)
                                    at /codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/[email protected]_2361f5618aa0257c80cd75abba1fcee1/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js:31:71
                                    at new Promise (<anonymous>)
                                    at __awaiter (/codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/[email protected]_2361f5618aa0257c80cd75abba1fcee1/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js:27:12)
2021-07-20T23:08:43.122Z [WARNING]: [Vue warn]: Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.
2021-07-20T23:08:43.122Z [WARNING]: TypeError: Cannot read property 'modules' of undefined
                                    at _sfc_main$4.setup (/codebuild/output/src050096663/src/vitesse-two/packages/client/.vite-ssg-temp/main.js:1131:15)
                                    at callWithErrorHandling (/codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/@[email protected]/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:119:22)
                                    at setupStatefulComponent (/codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/@[email protected]/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:5631:29)
                                    at setupComponent (/codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/@[email protected]/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:5612:11)
                                    at renderComponentVNode (/codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/[email protected]_2361f5618aa0257c80cd75abba1fcee1/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js:182:17)
                                    at /codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/[email protected]_2361f5618aa0257c80cd75abba1fcee1/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js:440:30
                                    at Generator.next (<anonymous>)
                                    at /codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/[email protected]_2361f5618aa0257c80cd75abba1fcee1/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js:31:71
                                    at new Promise (<anonymous>)
                                    at __awaiter (/codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/[email protected]_2361f5618aa0257c80cd75abba1fcee1/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js:27:12)
                                    [Vue warn]: Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.
                                    TypeError: Cannot read property 'modules' of undefined
                                    at _sfc_main$4.setup (/codebuild/output/src050096663/src/vitesse-two/packages/client/.vite-ssg-temp/main.js:1131:15)
                                    at callWithErrorHandling (/codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/@[email protected]/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:119:22)
                                    at setupStatefulComponent (/codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/@[email protected]/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:5631:29)
                                    at setupComponent (/codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/@[email protected]/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:5612:11)
                                    at renderComponentVNode (/codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/[email protected]_2361f5618aa0257c80cd75abba1fcee1/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js:182:17)
                                    at /codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/[email protected]_2361f5618aa0257c80cd75abba1fcee1/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js:440:30
                                    at Generator.next (<anonymous>)
                                    at /codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/[email protected]_2361f5618aa0257c80cd75abba1fcee1/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js:31:71
                                    at new Promise (<anonymous>)
                                    at __awaiter (/codebuild/output/src050096663/src/vitesse-two/packages/client/node_modules/.pnpm/[email protected]_2361f5618aa0257c80cd75abba1fcee1/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js:27:12)
2021-07-20T23:08:43.156Z [INFO]: dist/about.html	1.05kb
2021-07-20T23:08:43.157Z [INFO]: dist/readme.html	1.05kb
                                 dist/index.html	1.05kb
2021-07-20T23:08:43.158Z [INFO]: [vite-ssg] Build finished.
2021-07-20T23:08:43.231Z [INFO]: # Completed phase: build
2021-07-20T23:08:43.281Z [INFO]: ## Build completed successfully
2021-07-20T23:08:43.283Z [INFO]: # Starting caching...
2021-07-20T23:08:43.417Z [INFO]: # Creating cache artifact...
2021-07-20T23:10:38.123Z [INFO]: # Cache artifact is: 3475MB
2021-07-20T23:10:38.191Z [INFO]: # Uploading cache artifact...
2021-07-20T23:11:04.319Z [INFO]: # Caching completed
2021-07-20T23:11:04.409Z [INFO]: No custom headers found.
2021-07-20T23:11:04.478Z [INFO]: # Starting build artifact upload process...
2021-07-20T23:11:04.622Z [INFO]: # Build artifact is: 0MB
2021-07-20T23:11:04.623Z [INFO]: # Uploading build artifact '__artifacts.zip'...
2021-07-20T23:11:04.629Z [INFO]: # Build artifact is: 0MB
2021-07-20T23:11:04.629Z [INFO]: # Uploading build artifact '__artifactsHash.zip'...
2021-07-20T23:11:04.875Z [INFO]: # Build artifact upload completed
2021-07-20T23:11:04.876Z [INFO]: # Starting environment caching...
2021-07-20T23:11:04.876Z [INFO]: # Uploading environment cache artifact...
2021-07-20T23:11:04.974Z [INFO]: # Environment caching completed
Terminating logging...

PNPM Build logs locally (using NodeJS LTS via nvm)

What's weirder is that locally, on my machine, builds happen fast (BLAZING FAST), and they don't throw any errors.

╭─ armenr  ~/Dev/bee/beep-vitesse-test-2                                                                                                                               ✔  10032  16:40:09 
├─  staging ●  
╰─ pnpm build:client

> [email protected] build:client /Users/armenr/Development/beep-beep-workspace/beep-vitesse-test-2
> pnpm run build --filter @beepbeep/client


> @beepbeep/[email protected] build /Users/armenr/Development/beep-beep-workspace/beep-vitesse-test-2/packages/client
> cross-env NODE_ENV=production vite-ssg build


[vite-ssg] Build for client...
vite v2.4.2 building for production...
✓ 127 modules transformed.
dist/index.html                                1.13kb
dist/manifest.webmanifest                      0.38kb
dist/ssr-manifest.json                         12.39kb
dist/assets/about.ba52ffd2.js                  1.77kb / brotli: 0.59kb
dist/assets/README.0e31c5dc.js                 1.21kb / brotli: 0.43kb
dist/assets/virtual_pwa-register.e82f2316.js   5.37kb / brotli: 1.96kb
dist/assets/[...all].df64a62b.js               0.21kb / brotli: 0.16kb
dist/assets/[name].8ce75b88.js                 1.31kb / brotli: 0.68kb
dist/assets/home.11b4a5ca.js                   0.36kb / brotli: 0.23kb
dist/assets/404.fce372e5.js                    1.02kb / brotli: 0.51kb
dist/assets/app.5af45db3.js                    19.29kb / brotli: 4.94kb
dist/assets/app.a6001449.css                   18.18kb / brotli: 3.70kb
dist/assets/vendor.5fa6cfab.js                 108.49kb / brotli: 36.20kb

[vite-ssg] Build for server...
vite v2.4.2 building SSR bundle for production...
✓ 54 modules transformed.
.vite-ssg-temp/manifest.webmanifest        0.38kb
.vite-ssg-temp/main.js                     78.16kb
.vite-ssg-temp/assets/style.96324cd4.css   21.78kb
Is this a client? false

[vite-ssg] Rendering Pages... (3)
Is this a client? false
Is this a client? false
Is this a client? false
dist/index.html 5.84kb
dist/about.html 6.74kb
dist/readme.html        5.83kb

[vite-ssg] Build finished.

armenr avatar Jul 20 '21 23:07 armenr

I can assign this to myself and figure out the bug, please just leave it open so I can track/update and maybe open a PR

armenr avatar Jul 27 '21 18:07 armenr