From 84f1391f29f4b14c132b9bc745072144ab6cd49e Mon Sep 17 00:00:00 2001 From: Madison Steiner Date: Wed, 11 Mar 2026 00:14:43 +0000 Subject: [PATCH] perf(runtime): enable webpack compress and mangle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enable Terser compression and mangling for the jsii runtime bundle. This reduces bundle size and improves require() time at startup. - compress: true — enables dead code elimination and constant folding - mangle: true — shortens local variable names - keep_classnames: true — preserves class names used in error messages (serialization.ts:1296, objects.ts:131) and stack traces - keep_fnames: true — preserves function names for readable stack traces sent to language runtimes via the jsii protocol - Both keep_* options set at terserOptions top level AND inside mangle to protect against both compress and mangle passes Estimated 10-50ms faster initial require() due to smaller bundle size. --- packages/@jsii/runtime/webpack.config.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/@jsii/runtime/webpack.config.js b/packages/@jsii/runtime/webpack.config.js index 81ebe00e7b..f00a6e6ae2 100644 --- a/packages/@jsii/runtime/webpack.config.js +++ b/packages/@jsii/runtime/webpack.config.js @@ -38,12 +38,16 @@ module.exports = { minimizer: [ new TerserPlugin({ terserOptions: { - compress: false, + keep_classnames: true, + keep_fnames: true, + compress: true, format: { - beautify: true, comments: 'some', }, - mangle: false, + mangle: { + keep_classnames: true, + keep_fnames: true, + }, }, extractComments: false, }),