Custom builds
Custom builds are a way for you to customize how your code is compiled, before being processed by Wrangler.
Custom builds are configured by adding a [build] section in your Wrangler configuration file, and using the following options for configuring your custom build.
-
commandstringoptional- The command used to build your Worker. On Linux and macOS, the command is executed in the
shshell and thecmdshell for Windows. The&&and||shell operators may be used. This command will be run as part ofwrangler devandnpx wrangler deploy.
- The command used to build your Worker. On Linux and macOS, the command is executed in the
-
cwdstringoptional- The directory in which the command is executed.
-
watch_dirstring | string\[]optional- The directory to watch for changes while using
wrangler dev. Defaults to the current working directory.
- The directory to watch for changes while using
Example:
{ "build": { "command": "npm run build", "cwd": "build_cwd", "watch_dir": "build_watch_dir" }}[build]command = "npm run build"cwd = "build_cwd"watch_dir = "build_watch_dir"When Wrangler runs your custom build command, it sets the WRANGLER_COMMAND environment variable so your build script can detect which Wrangler command triggered the build. This allows you to customize the build process based on the deployment context.
The possible values are:
| Value | Wrangler command triggered |
|---|---|
dev | wrangler dev |
deploy | wrangler deploy |
versions upload | wrangler versions upload |
types | wrangler types |
For example, you can use this to apply different build settings for development and production:
#!/bin/bashif [ "$WRANGLER_COMMAND" = "dev" ]; then echo "Building for development..." # run a development buildelse echo "Building for production..." # run a production buildfi