serverless-nextjs/serverless-next.js
View on GitHubCDK Construct - S3 Deployment stage missing `basePath`
Open
#1620 opened on Sep 2, 2021
good first issue
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) });