From 4f06a147f1a7379a5e2a6f98c4be01976d63446b Mon Sep 17 00:00:00 2001 From: Romaric Pascal Date: Tue, 29 Aug 2023 15:45:36 +0100 Subject: [PATCH] Updated Terser's mangle option This'll keep the names of our classes and functions intact for neater stacktraces. The [impact on file size](https://github.com/alphagov/govuk-frontend/issues/4076\#issuecomment-1677677788) is very acceptable in front of the maintainability gain. --- packages/govuk-frontend/rollup.release.config.mjs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/govuk-frontend/rollup.release.config.mjs b/packages/govuk-frontend/rollup.release.config.mjs index 341a5fc56f..d55309bba7 100644 --- a/packages/govuk-frontend/rollup.release.config.mjs +++ b/packages/govuk-frontend/rollup.release.config.mjs @@ -30,7 +30,13 @@ export default defineConfig(({ i: input }) => ({ plugins: [ terser({ format: { comments: false }, - mangle: { reserved: Object.keys(GOVUKFrontend) }, + mangle: { + keep_classnames: true, + keep_fnames: true, + // Ensure all top-level exports skip mangling, for example + // non-function string constants like `export { version }` + reserved: Object.keys(GOVUKFrontend) + }, // Include sources content from source maps to inspect // GOV.UK Frontend and other dependencies' source code