serverless-nextjs/serverless-next.js
View on GitHubCDK Construct - S3 Deployment stage missing `basePath`
Open
#1,620 opened on Sep 2, 2021
good first issue
Repository metrics
- Stars
- (3,998 stars)
- PR merge metrics
- (No merged PRs in 30d)
Description
If basePath is set in next.config.js, the build would put static assets within ${sererlessBuildOutDir}/assets/${basePath}.
However, in the CDK construct (NextJSLambdaEdge), it tries to read the assets from ${sererlessBuildOutDir}/assets without including the basePath
The function returns with an empty assets object leading to none of the assets being uploaded.
Similar code in s3-static-assets handle this correctly
The fix looks relatively straight forward and it works for my use case.
const { basePath } = this.routesManifest || {};
const normalizedBasePath = basePath && basePath.length > 0? basePath.slice(1) : "";
const assets = readAssetsDirectory({ assetsDirectory: path.join(assetsDirectory, normalizedBasePath) });