From 97393058a329585fa0e19704d6a59abb3b115f36 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Fri, 11 Jul 2025 12:37:25 +0200 Subject: [PATCH 1/3] build: Disable side-effects for any `./debug-build.ts` file --- dev-packages/rollup-utils/npmHelpers.mjs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dev-packages/rollup-utils/npmHelpers.mjs b/dev-packages/rollup-utils/npmHelpers.mjs index 6ef09192eef1..adb8243b6b91 100644 --- a/dev-packages/rollup-utils/npmHelpers.mjs +++ b/dev-packages/rollup-utils/npmHelpers.mjs @@ -26,6 +26,8 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url)); const packageDotJSON = JSON.parse(fs.readFileSync(path.resolve(process.cwd(), './package.json'), { encoding: 'utf8' })); +const ignoreSideEffects = [/[\\\/]debug-build\.ts$/]; + export function makeBaseNPMConfig(options = {}) { const { entrypoints = ['src/index.ts'], @@ -83,6 +85,12 @@ export function makeBaseNPMConfig(options = {}) { interop: 'esModule', }, + treeshake: { + moduleSideEffects: (id, external) => { + return external === false && ignoreSideEffects.some(regex => regex.test(id)); + } + }, + plugins: [nodeResolvePlugin, sucrasePlugin, debugBuildStatementReplacePlugin, rrwebBuildPlugin, cleanupPlugin], // don't include imported modules from outside the package in the final output From 75f8a85f91364229361106a83eb86d02a6e1b87c Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Fri, 11 Jul 2025 12:38:49 +0200 Subject: [PATCH 2/3] no array --- dev-packages/rollup-utils/npmHelpers.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev-packages/rollup-utils/npmHelpers.mjs b/dev-packages/rollup-utils/npmHelpers.mjs index adb8243b6b91..79a366972615 100644 --- a/dev-packages/rollup-utils/npmHelpers.mjs +++ b/dev-packages/rollup-utils/npmHelpers.mjs @@ -26,7 +26,7 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url)); const packageDotJSON = JSON.parse(fs.readFileSync(path.resolve(process.cwd(), './package.json'), { encoding: 'utf8' })); -const ignoreSideEffects = [/[\\\/]debug-build\.ts$/]; +const ignoreSideEffects = /[\\\/]debug-build\.ts$/; export function makeBaseNPMConfig(options = {}) { const { @@ -87,7 +87,7 @@ export function makeBaseNPMConfig(options = {}) { treeshake: { moduleSideEffects: (id, external) => { - return external === false && ignoreSideEffects.some(regex => regex.test(id)); + return external === false && ignoreSideEffects.test(id); } }, From a4c5611a5e72923143f88fce1f5cc528f227f8b0 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Fri, 11 Jul 2025 12:45:17 +0200 Subject: [PATCH 3/3] clearer logic --- dev-packages/rollup-utils/npmHelpers.mjs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/dev-packages/rollup-utils/npmHelpers.mjs b/dev-packages/rollup-utils/npmHelpers.mjs index 79a366972615..83053aaeea98 100644 --- a/dev-packages/rollup-utils/npmHelpers.mjs +++ b/dev-packages/rollup-utils/npmHelpers.mjs @@ -87,7 +87,12 @@ export function makeBaseNPMConfig(options = {}) { treeshake: { moduleSideEffects: (id, external) => { - return external === false && ignoreSideEffects.test(id); + if (external === false && ignoreSideEffects.test(id)) { + // Tell Rollup this module has no side effects, so it can be tree-shaken + return false; + } + + return true; } },