Security News
PyPI Introduces Digital Attestations to Strengthen Python Package Security
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
cdk-bundle-analyzer
Advanced tools
A library that delivers tools to analyze the bundle size of TypeScript/JavaScript CDK functions.
A library that delivers tools to analyze the bundle size of TypeScript/JavaScript CDK functions.
NodejsFunction
construct to define functions
NodejsFunction
construct, refer to the Custom NodejsFunction
construct sectionesbuild
must be installed in the project. Follow the link above for more details.Install with
pnpm add -D cdk-bundle-analyzer
Add the following CDK aspect after the CDK app definition:
import { NodeJsFunctionBundleAnalyzerAspect } from 'cdk-bundle-analyzer';
const app = new App();
// ...
Aspects.of(app).add(new NodeJsFunctionBundleAnalyzerAspect());
Add the metafile
option to the NodejsFunction
to analyze:
new NodejsFunction(this, 'MyFunction', {
entry: 'src/index.ts',
metafile: true,
});
Run the following command to analyze the bundle:
cdk synth --quiet -c analyze=Health
A browser window will open with the bundle size analysis 🎉
For easier DX, the options must be passed as CDK context variables, directly when running the cdk synth
command.
The following options are available:
analyze
The name of the function to analyze. If not specified, no function will be analyzed.
Example:
cdk synth --quiet -c analyze=Health
template
The bundle template to use. Should be one of sunburst
, treemap
, network
. Defaults to treemap
.
Example:
cdk synth --quiet -c analyze=Health -c template=sunburst
NodejsFunction
construct 🏗️If using a custom construct that extends the NodejsFunction
construct, simply pass the custom construct that extends the NodejsFunction
construct to the NodeJsFunctionBundleAnalyzerAspect
constructor.
For example:
import { NodeJsFunctionBundleAnalyzerAspect } from 'cdk-bundle-analyzer';
const app = new App();
// ...
class MyCustomNodejsFunction extends NodejsFunction {
// ...
}
// ...
Aspects.of(app).add(
new NodeJsFunctionBundleAnalyzerAspect({
customFunctionConstruct: MyCustomNodejsFunction,
}),
);
NodeJsFunctionBundleAnalyzerAspect
will have no effect on the CDK app whatsoever. It will not change the behavior of the CDK app in any way. Moreover, the side-effect that generates the bundle analysis will only be executed if the analyze
context variable is specified. Thus it is safe to add the aspect to the CDK app and commit it to the repository.metafile
option is required to be set to true
in the NodejsFunction
construct. This is because the aspect needs to read the esbuild
metafile to analyze the bundle. If committed, this means that the resulting metafile will be included in the lambda's deployment package. Its size is approximately the same as the bundle size. It is up to the user to decide if this is acceptable or not to commit.No worries! Check out my plugin serverless-analyze-bundle-plugin that does the same thing for the Serverless Framework 🚀
FAQs
A library that delivers tools to analyze the bundle size of TypeScript/JavaScript CDK functions.
The npm package cdk-bundle-analyzer receives a total of 95 weekly downloads. As such, cdk-bundle-analyzer popularity was classified as not popular.
We found that cdk-bundle-analyzer demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.