Registry /
aws / serverless-esbuild-layers
Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
default (plugin)
✓ plugins:
- serverless-esbuild
- serverless-esbuild-layers
✗ plugins:
- serverless-esbuild-layers
- serverless-esbuild
Order matters: serverless-esbuild must come before serverless-esbuild-layers in the plugins list
esbuild-node-externals plugin
✓ const { nodeExternalsPlugin } = require('esbuild-node-externals');
module.exports = [nodeExternalsPlugin()];
✗ const nodeExternalsPlugin = require('esbuild-node-externals');
module.exports = [nodeExternalsPlugin()];
esbuild-node-externals exports a named function, not a default export
Custom esbuild-layers config
✓ custom:
esbuild-layers:
packager: 'yarn'
forceInclude:
- lodash
✗ custom:
esbuild-layers:
packager: yarn
packager must be a string literal in YAML (enclosed in quotes), not a bare word, to avoid being interpreted as a boolean
Complete setup for Serverless Framework with esbuild layers: plugin configuration, externalisation via esbuild-node-externals, layer definition, and function attachment.
// esbuild-plugins.js
const { nodeExternalsPlugin } = require('esbuild-node-externals');
module.exports = [nodeExternalsPlugin()];
// serverless.yml
plugins:
- serverless-esbuild
- serverless-esbuild-layers
custom:
esbuild:
plugins: esbuild-plugins.js
exclude:
- '*'
esbuild-layers:
packager: 'npm'
forceExclude:
- aws-sdk
forceInclude:
- my-common-lib
layers:
lib:
path: '.serverless'
name: my-modules
description: node_modules
compatibleRuntimes:
- nodejs14.x
functions:
hello:
handler: handler.hello
layers:
- { Ref: LibLambdaLayer }
Errors
Common errors & fixes
Error: ENOENT: no such file or directory, open '/path/to/serverless.yml'
serverless-esbuild-layers cannot find the serverless.yml file if the working directory is incorrect or file is missing.
fixRun serverless commands from the directory containing serverless.yml, or specify --config path.
Error: The 'plugins' section must be an array of strings
Plugins listed in serverless.yml are not valid string names (e.g., missing quotes or using object syntax).
fixEnsure plugins are listed as strings: plugins:
- serverless-esbuild
- serverless-esbuild-layers
TypeError: nodeExternalsPlugin is not a function
Incorrect import style; esbuild-node-externals exports a named function, not a default export.
fixUse const { nodeExternalsPlugin } = require('esbuild-node-externals'); Error: Layer 'lib' not found in the CloudFormation template
Layer definitions are missing or the reference name in the function does not match the auto-generated ref name.
fixAdd a layer definition under 'layers' and ensure function layer references use { Ref: LibLambdaLayer } with correct capitalization. Audit
Dependencies
serverlessrequiredPeer dependency: plugin requires the Serverless Framework to hook into build lifecycle events
serverless-esbuildrequiredPeer dependency: this plugin is designed to work alongside serverless-esbuild for bundling
esbuild-node-externalsrequiredRequired to externalize all node_modules during esbuild bundling so layers can pick them up