@Generated(value="jsii-pacmak/1.73.0 (build 6faeda3)",
date="2023-01-31T18:36:54.873Z")
public interface BundlingOptions
Example:
NodejsFunction.Builder.create(this, "my-handler") .bundling(BundlingOptions.builder() .dockerImage(DockerImage.fromBuild("/path/to/Dockerfile")) .build()) .build();
Modifier and Type | Interface and Description |
---|---|
static class |
BundlingOptions.Builder
A builder for
BundlingOptions |
static class |
BundlingOptions.Jsii$Proxy
An implementation for
BundlingOptions |
Modifier and Type | Method and Description |
---|---|
static BundlingOptions.Builder |
builder() |
default java.lang.String |
getAssetHash()
Specify a custom hash for this asset.
|
default java.lang.String |
getBanner()
Use this to insert an arbitrary string at the beginning of generated JavaScript files.
|
default java.util.Map<java.lang.String,java.lang.String> |
getBuildArgs()
Build arguments to pass when building the bundling image.
|
default Charset |
getCharset()
The charset to use for esbuild's output.
|
default ICommandHooks |
getCommandHooks()
Command hooks.
|
default java.util.Map<java.lang.String,java.lang.String> |
getDefine()
Replace global identifiers with constant expressions.
|
default DockerImage |
getDockerImage()
A custom bundling Docker image.
|
default java.util.Map<java.lang.String,java.lang.String> |
getEnvironment()
Environment variables defined when bundling runs.
|
default java.util.Map<java.lang.String,java.lang.Object> |
getEsbuildArgs()
Build arguments to pass into esbuild.
|
default java.lang.String |
getEsbuildVersion()
The version of esbuild to use when running in a Docker container.
|
default java.util.List<java.lang.String> |
getExternalModules()
A list of modules that should be considered as externals (already available in the runtime).
|
default java.lang.String |
getFooter()
Use this to insert an arbitrary string at the end of generated JavaScript files.
|
default java.lang.Boolean |
getForceDockerBundling()
Force bundling in a Docker container even if local bundling is possible.
|
default OutputFormat |
getFormat()
Output format for the generated JavaScript files.
|
default java.util.List<java.lang.String> |
getInject()
This option allows you to automatically replace a global variable with an import from another file.
|
default java.lang.Boolean |
getKeepNames()
Whether to preserve the original `name` values even in minified code.
|
default java.util.Map<java.lang.String,java.lang.String> |
getLoader()
Use loaders to change how a given input file is interpreted.
|
default LogLevel |
getLogLevel()
Log level for esbuild.
|
default java.util.List<java.lang.String> |
getMainFields()
How to determine the entry point for modules.
|
default java.lang.Boolean |
getMetafile()
This option tells esbuild to write out a JSON file relative to output directory with metadata about the build.
|
default java.lang.Boolean |
getMinify()
Whether to minify files when bundling.
|
default java.util.List<java.lang.String> |
getNodeModules()
A list of modules that should be installed instead of bundled.
|
default java.lang.Boolean |
getPreCompilation()
Run compilation using tsc before running file through bundling step.
|
default java.lang.Boolean |
getSourceMap()
Whether to include source maps when bundling.
|
default SourceMapMode |
getSourceMapMode()
Source map mode to be used when bundling.
|
default java.lang.Boolean |
getSourcesContent()
Whether to include original source code in source maps when bundling.
|
default java.lang.String |
getTarget()
Target environment for the generated JavaScript code.
|
default java.lang.String |
getTsconfig()
Normally the esbuild automatically discovers `tsconfig.json` files and reads their contents during a build.
|
default java.lang.String getAssetHash()
For consistency, this custom hash will be SHA256 hashed and encoded as hex. The resulting hash will be the asset hash.
NOTE: the hash is used in order to identify a specific revision of the asset, and used for optimizing and caching deployment activities related to this asset such as packaging, uploading to Amazon S3, etc. If you chose to customize the hash, you will need to make sure it is updated every time the asset changes, or otherwise it is possible that some deployments will not be invalidated.
Default: - asset hash is calculated based on the bundled output
default java.lang.String getBanner()
This is similar to footer which inserts at the end instead of the beginning.
This is commonly used to insert comments:
Default: - no comments are passed
default java.util.Map<java.lang.String,java.lang.String> getBuildArgs()
Default: - no build arguments are passed
default Charset getCharset()
By default esbuild's output is ASCII-only. Any non-ASCII characters are escaped
using backslash escape sequences. Using escape sequences makes the generated output
slightly bigger, and also makes it harder to read. If you would like for esbuild to print
the original characters without using escape sequences, use Charset.UTF8
.
Default: Charset.ASCII
default ICommandHooks getCommandHooks()
Default: - do not run additional commands
default java.util.Map<java.lang.String,java.lang.String> getDefine()
For example, { 'process.env.DEBUG': 'true' }
.
Another example, { 'process.env.API_KEY': JSON.stringify('xxx-xxxx-xxx') }
.
Default: - no replacements are made
default DockerImage getDockerImage()
This image should have esbuild installed globally. If you plan to use nodeModules
it should also have npm
or yarn
depending on the lock file you're using.
See https://github.com/aws/aws-cdk/blob/master/packages/%40aws-cdk/aws-lambda-nodejs/lib/Dockerfile for the default image provided by @aws-cdk/aws-lambda-nodejs.
Default: - use the Docker image provided by
default java.util.Map<java.lang.String,java.lang.String> getEnvironment()
Default: - no environment variables are defined.
default java.util.Map<java.lang.String,java.lang.Object> getEsbuildArgs()
For example, to add the --log-limit flag:
new NodejsFunction(scope, id, { ... bundling: { esbuildArgs: { "--log-limit": "0", } } });
Default: - no additional esbuild arguments are passed
default java.lang.String getEsbuildVersion()
Default: - latest v0
default java.util.List<java.lang.String> getExternalModules()
Default: ['aws-sdk']
default java.lang.String getFooter()
This is similar to banner which inserts at the beginning instead of the end.
This is commonly used to insert comments
Default: - no comments are passed
default java.lang.Boolean getForceDockerBundling()
This is useful if your function relies on node modules
that should be installed (nodeModules
) in a Lambda compatible
environment.
Default: false
default OutputFormat getFormat()
Default: OutputFormat.CJS
default java.util.List<java.lang.String> getInject()
Default: - no code is injected
default java.lang.Boolean getKeepNames()
In JavaScript the name
property on functions and classes defaults to a
nearby identifier in the source code.
However, minification renames symbols to reduce code size and bundling
sometimes need to rename symbols to avoid collisions. That changes value of
the name
property for many of these cases. This is usually fine because
the name
property is normally only used for debugging. However, some
frameworks rely on the name
property for registration and binding purposes.
If this is the case, you can enable this option to preserve the original
name
values even in minified code.
Default: false
default java.util.Map<java.lang.String,java.lang.String> getLoader()
Configuring a loader for a given file type lets you load that file type with
an import
statement or a require
call.
Default: - use esbuild default loaders
default LogLevel getLogLevel()
This is also propagated to the package manager and applies to its specific install command.
Default: LogLevel.WARNING
default java.util.List<java.lang.String> getMainFields()
Try ['module', 'main'] to default to ES module versions.
Default: ['main', 'module']
default java.lang.Boolean getMetafile()
The metadata in this JSON file follows this schema (specified using TypeScript syntax):
{ outputs: { [path: string]: { bytes: number inputs: { [path: string]: { bytesInOutput: number } } imports: { path: string }[] exports: string[] } } }
This data can then be analyzed by other tools. For example, bundle buddy can consume esbuild's metadata format and generates a treemap visualization of the modules in your bundle and how much space each one takes up.
Default: false
default java.lang.Boolean getMinify()
Default: false
default java.util.List<java.lang.String> getNodeModules()
Modules are installed in a Lambda compatible environment only when bundling runs in Docker.
Default: - all modules are bundled
default java.lang.Boolean getPreCompilation()
This usually is not required unless you are using new experimental features that
are only supported by typescript's tsc
compiler.
One example of such feature is emitDecoratorMetadata
.
Default: false
default java.lang.Boolean getSourceMap()
Default: false
default SourceMapMode getSourceMapMode()
Default: SourceMapMode.DEFAULT
default java.lang.Boolean getSourcesContent()
Default: true
default java.lang.String getTarget()
Default: - the node version of the runtime
default java.lang.String getTsconfig()
However, you can also configure a custom tsconfig.json
file to use instead.
This is similar to entry path, you need to provide path to your custom tsconfig.json
.
This can be useful if you need to do multiple builds of the same code with different settings.
For example, { 'tsconfig': 'path/custom.tsconfig.json' }
.
Default: - automatically discovered by `esbuild`
static BundlingOptions.Builder builder()
BundlingOptions.Builder
of BundlingOptions