aws-amplify / aws-amplify/docs
document function build issues with esbuild in monorepos, with pnpm, yarn
- Dominant language
- MDX
- Stars
- 506
- Forks
- 1.1k
- Avg merge
- 3h 14m
- Merged PRs (30d)
- 1
Description
**Describe the content issue**:
A clear and concise description of what the content issue is. Is there content missing or is there incorrect content?
add a (temporary) troubleshooting doc to callout the need for installing esbuild at the monorepo root when using yarn, pnpm, or other package manager install strategies that symlink the esbuild bin in monorepo packages
https://github.com/aws-amplify/amplify-backend/issues/1512
when executing `pnpm ampx sandbox` from within the monorepo package CDK fails to execute esbuild for Function builds in the target directory
```
➜ p ampx sandbox
Amplify Sandbox
Identifier: josef
Stack: amplify-identityprovidersbackend-josef-sandbox-04818156ae
To specify a different sandbox identifier, use --identifier
Unable to build the Amplify backend definition.
Caused By: Error: Failed to bundle asset amplify-identityprovidersbackend-josef-sandbox-04818156ae/auth/SecretFetcherResourceProviderLambda/Code/Stage, bundle output is located at /Users/josef/Documents/projects/aws-amplify/amplify-gen2-identity-providers/packages/identity-providers-backend/.amplify/artifacts/cdk.out/bundling-temp-bb3b79a8a866090c1bd808cc6e9822677dbcd6fd39430da733e289729027d116-error: Error: bash -c pnpm exec -- esbuild --bundle "/Users/josef/Documents/projects/aws-amplify/amplify-gen2-identity-providers/node_modules/.pnpm/@aws-amplify+backend@1.0.3_@aws-sdk+client-cloudformation@3.598.0_@aws-sdk+client-s3@3.598.0__tn7afzbpzntiestvo3f3w5qwye/node_modules/@aws-amplify/backend/lib/engine/backend-secret/lambda/backend_secret_fetcher.js" --target=node18 --platform=node --outfile="/Users/josef/Documents/projects/aws-amplify/amplify-gen2-identity-providers/packages/identity-providers-backend/.amplify/artifacts/cdk.out/bundling-temp-bb3b79a8a866090c1bd808cc6e9822677dbcd6fd39430da733e289729027d116/index.js" --external:@aws-sdk/* run in directory /Users/josef/Documents/projects/aws-amplify/amplify-gen2-identity-providers exited with status 254
at AssetStaging.bundle (/Users/josef/Documents/projects/aws-amplify/amplify-gen2-identity-providers/node_modules/.pnpm/aws-cdk-lib@2.146.0_constructs@10.3.0/node_modules/aws-cdk-lib/core/lib/asset-staging.js:2:619)
Resolution: Check your backend definition in the `amplify` folder for syntax and type errors.
```
However if you wrap `ampx sandbox` in an npm script and run with `npm run dev`, for example, it works fine. Otherwise you will need to install `esbuild` at the project root where CDK is executing from. Since pnpm will only link the bin in the directory in which it is specified as a dependency, we receive a vague error
**URL page where content issue is**:
Contributor guide
Assessment
This issue has not been assessed yet.