serverless-esbuild
raw JSON → 1.57.1 verified Mon Apr 27 auth: no javascript
Serverless Framework plugin for zero-config JavaScript and TypeScript bundling using esbuild. Current stable version is 1.57.1 (April 2026), released continuously with semantic release. It automatically bundles and minifies Lambda functions with esbuild, supports TypeScript and JavaScript, integrates with sls package/deploy/deploy function, serverless-offline, and invoke local. Key differentiator: zero-config, extremely fast (esbuild), and supports multiple providers (AWS, Google Cloud, etc.) with runtime support for Node.js 18+. Requires peer dependencies esbuild (0.8 - 0.28) and esbuild-node-externals (^1.0.0). Ships TypeScript types.
Common errors
error Error: Cannot find module 'esbuild' ↓
cause esbuild not installed or not in node_modules
fix
npm install -D esbuild
error Error: serverless-esbuild expects Node >= 18 ↓
cause Running on older Node.js version
fix
Upgrade Node.js to v18 or later
error TypeError: Cannot read properties of undefined (reading 'includes') ↓
cause esbuild version incompatible with serverless-esbuild
fix
Update esbuild to a supported version (0.8 - 0.28)
Warnings
breaking Node.js 18+ required ↓
fix Upgrade Node.js to version 18 or higher.
breaking esbuild peer dependency range updated ↓
fix Ensure esbuild version is 0.8-0.28. For earlier versions, esbuild 0.8-0.25 is supported.
breaking Dropped Node.js 14 and 16 support ↓
fix Upgrade Node.js to 18+.
gotcha Memory leak when skipRebuild is true ↓
fix Upgrade to 1.54.5+ which contains a fix for the memory leak.
gotcha Automatic externalization of all node_modules via esbuild-node-externals ↓
fix To include specific node_modules in the bundle, add them to the 'external' option or override packager options.
Install
npm install serverless-esbuild yarn add serverless-esbuild pnpm add serverless-esbuild Imports
- serverless-esbuild wrong
plugins: - serverlessEsbuildcorrectplugins: - serverless-esbuild
Quickstart
// Install dependencies
// npm install -D serverless-esbuild esbuild esbuild-node-externals
// serverless.yml
service: my-service
provider:
name: aws
runtime: nodejs18.x
plugins:
- serverless-esbuild
functions:
hello:
handler: src/handler.hello
events:
- http:
path: hello
method: get
// src/handler.ts
export const hello = async (event: any) => {
return {
statusCode: 200,
body: JSON.stringify({ message: 'Hello from esbuild!' }),
};
};