Configuration

How to configure esbuild-azure-functions.

How to configure

How you configure esbuild-azure-functions depends on if you are using the CLI or calling programmatically. We recommend calling esbuild-azure-functions programmatically, though.

Configuring on the CLI

By default, esbuild-azure-functions expects a file called esbuild-azure-functions.config.json in the current working directory. You can, however, specify a file using the -c | --config flag.

Configuring in the code

If you are calling esbuild-azure-functions programmatically, you can simply pass the config object to the build or watch function.

build.mjs
import { build, watch } from 'esbuild-azure-functions';

await build({ /* your config here */ });

// or

await watch({ /* your config here */ });

Properties

These properties are available

Project

Required: yes Type: string Default: undefined Supported by: build, watch

The root folder of the Azure Functions project you want to build.

Entry Points

Required: no Type: string[] Default: undefined Supported by: build, watch

Specify custom entry points if you don't want esbuild-azure-functions to search for index.ts files in the project folder.

Exclude

Required: no Type: string[] Default: undefined Supported by: build, watch

Specify directories as glob patterns to exclude when searching for index.ts files.

Clean

Required: no Type: boolean Default: false Supported by: build, watch

Specify whether esbuild-azure-functions should delete the output directory before building.

Log Level

Required: no Type: "off" | "error" | "warn" | "info" | "verbose" Default: "error" Supported by: build, watch

Specify the verbosity of log messages.

esbuild options

Required: no Type: Refer to official docs Supported by: build, watch

Customize the esbuild confg that esbuild-azure-functions uses.

Note: Modifying this can lead to unexpected behavior. You should never set write to true since esbuild-azure-functions write the output files itself.

Default value

Advanced options

Enable some advanced options depending on your environment.

Enable __dirname Shim

Required: no Type: boolean Default: false Supported by: build, watch

Enables a plugin that patches __dirname and __filename using import.meta.url (see official Node.js docs) at the top of every output file because they are not available in ESM and esbuild doesn't shim them itself.

Enable require Shim

Required: no Type: boolean Default: false Supported by: build, watch

Enables a plugin that patches require using import.meta.url at the top of every output file because esbuild doesn't support converting CJS requires to ESM imports.

Callbacks

These callbacks are available to hook into the build process. These are only available when esbuild-azure-functions is used in code.

onRebuild

Required: no Type: function Parameters: (error: BuildFailure | null, result: BuildResult | null) Default: undefined Supported by: watch

Callback that's called for every rebuild.

Last updated