aws-lambda-nodejs-esbuild
                                
                                 aws-lambda-nodejs-esbuild copied to clipboard
                                
                                    aws-lambda-nodejs-esbuild copied to clipboard
                            
                            
                            
                        λ💨 AWS CDK Construct to bundle JavaScript and TypeScript AWS lambdas using extremely fast esbuild.
λ💨 aws-lambda-nodejs-esbuild
AWS CDK Construct to build Node.js AWS lambdas using esbuild.
Table of Contents
- Features
- Installation
- Configure
- Usage
- Author
Features
- Zero-config: Works out of the box without the need to install any other packages
- Supports ESNext and TypeScript syntax with transforming limitations (See Note)
Note: The default JavaScript syntax target is set to ES2017, so the final bundle will be supported by all AWS Lambda Node.js runtimes. If you still using an old lambda runtime and have to respect it you can play with esbuild target option, see JavaScript syntax support for more details about syntax transform limitations.
Installation
yarn add --dev @aws-cdk/aws-lambda aws-lambda-nodejs-esbuild
# or
npm install -D @aws-cdk/aws-lambda aws-lambda-nodejs-esbuild
Configure
By default, no configuration required, but you can change esbuild behavior:
  import * as cdk from '@aws-cdk/core';
  import { NodejsFunction } from 'aws-lambda-nodejs-esbuild';
  class NewStack extends cdk.Stack {
    constructor(scope, id, props) {
      super(scope, id, props);
      new NodejsFunction(this, 'NewFunction', {
        esbuildOptions: {
          minify: false, // default
          target: 'ES2017',
        }
      });
    }
  }
Check esbuild documentation for the full list of available options. Note that some options like entryPoints or outdir cannot be overwritten.
The package specified in the exclude option is passed to esbuild as external, but it is not included in the function bundle either. The default value for this option is ['aws-sdk'].
Usage
The normal AWS CDK deploy procedure will automatically compile with esbuild:
- Create the AWS CDK project with cdk init app --language=typescript
- Install aws-lambda-nodejs-esbuildas above
- Deploy with cdk deploy
See examples: minimal and complete