JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 375
  • Score
    100M100P100Q102384F
  • License MIT

This library provides constructs for Node.js Lambda function bundled using webpack.

Package Exports

  • aws-cdk-webpack-lambda-function

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (aws-cdk-webpack-lambda-function) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

aws-cdk-webpack-lambda-function

forked from @aws-cdk/aws-lambda-nodejs

This library provides constructs for Node.js Lambda function bundled using webpack.

Quick Start

  1. install using yarn:

    yarn add -D aws-cdk-webpack-lambda-function @aws-cdk/core @aws-cdk/aws-lambda webpack webpack-cli
    # npm i -D aws-cdk-webpack-lambda-function @aws-cdk/core @aws-cdk/aws-lambda webpack webpack-cli

    Note: webpack@5 required.

  2. add webpack.config.js:

    module.exports = {
      mode: "production", // production or development
      target: "node",
      externals: [/^aws-sdk(\/.+)?$/], // important!!!
      devtool: "source-map", // if needed
      optimization: { minimize: false }, // if needed
      // for TypeScript
      module: {
        rules: [
          {
            test: /\.ts$/,
            use: {
              loader: "ts-loader",
              options: {
                configFile: "your/path/to/tsconfig.json", // if needed
                // colors: true,
                // logInfoToStdOut: true,
                // logLevel: 'INFO',
                transpileOnly: true,
              },
            },
            exclude: /node_modules/,
          },
        ],
      },
      resolve: {
        extensions: [".js", ".ts"],
      },
    };
  3. (Optional) add tsconfig.json for lambda

    {
      "extends": "../ ... /tsconfig.json",
      "compilerOptions": {
        "importHelpers": false,
        "target": "ES2018",
        "noEmit": false
      }
    }
  4. your cdk source code:

    import { WebpackFunction } from "aws-cdk-webpack-lambda-function";
    
    new WebpackFunction(this, "YourFunction", {
      entry: "your/path/to/function.ts",
      config: "your/path/to/webpack.config.js",
    });

Options

entry: string (required)

Path to the entry file (JavaScript or TypeScript).

config: string (required)

Path to webpack config file.

handler: string

The name of the exported handler in the entry file.

default: "handler"

runtime: lambda.Runtime

The runtime environment. Only runtimes of the Node.js family are supported.

default: NODEJS_14

buildDir: string

The build directory.

default: .build in the entry file directory

ensureUniqueBuildPath: boolean

Control whether the build output is placed in a unique directory (sha256 hash) or not. This can be disabled to simplify development and debugging.

default: true

...other options

All other properties of lambda.Function are supported, see also the AWS Lambda construct library.

Run tests

yarn build
yarn test