aws / aws/aws-sam-cli

Issue with sam build --build-in-source

Open
#7,516 6 comments 0 reactions 0 assignees View on GitHub
area/build maintainer/need-response type/bug
Dominant language
Python
Stars
6.7k
Forks
1.2k
Avg merge
1d 10h
Merged PRs (30d)
52

Description

When running sam build --build-in-source, the build process fails for the lambda function with an esbuild error. However, sam build without the --build-in-source flag works successfully.

**Steps to reproduce:**
Set up a SAM project with multiple lambda functions using esbuild.
Run sam build --build-in-source

**Expected behavior:**
The build process should complete successfully for all lambda functions.

**Actual behavior:**
```
The build fails with the following error:
CopyNodejsNpmEsbuildBuilder:EsbuildBundle failed
EsbuildExecutionError: Esbuild Failed: ✘ [ERROR] Could not resolve "@sendgrid/client"

node_modules/@sendgrid/mail/src/classes/mail-service.js:6:25:
6 │ const {Client} = require('@sendgrid/client');
╵ ~~~~~~~~~~~~~~~~~~

You can mark the path "@sendgrid/client" as external to exclude it from the bundle, which will remove this error. You can also surround this "require" call with a try/catch block to handle this failure at run-time instead of bundle-time.
```

**Environment:**
npm version: 10.5.0
SAM CLI version: 1.124.0
Operating System: macOS

**Relevant configuration:**
SAM template snippet for the Contact function:

```
Type: AWS::Serverless::Function
Properties:
Environment:
Variables:
SENDGRID_API_KEY: !Ref SendGridApiKey
Events:
Contact:
Type: Api
Properties:
RestApiId: !Ref Api
Path: /contact
Method: post
Auth:
Authorizer: NONE
Metadata:
BuildMethod: esbuild
BuildProperties:
Minify: true
Target: 'es2022'
Sourcemap: false
EntryPoints:
- src/public/contact/index.ts
```

**Relevant dependencies from package.json:**
```
"dependencies": {
"@sendgrid/mail": "^7.7.0",
"esbuild": "^0.17.17"
},
"devDependencies": {
"@types/aws-lambda": "^8.10.145",
"typescript": "^4.5.5"
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.