From b206188af3cb5306dd894429b3bc3766334ebf48 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Wed, 12 Nov 2025 09:55:41 -0500 Subject: [PATCH] fix: better CommonJS transformation --- .../repl/src/lib/workers/bundler/plugins/commonjs.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/repl/src/lib/workers/bundler/plugins/commonjs.ts b/packages/repl/src/lib/workers/bundler/plugins/commonjs.ts index 7840688f59..eb50f86833 100644 --- a/packages/repl/src/lib/workers/bundler/plugins/commonjs.ts +++ b/packages/repl/src/lib/workers/bundler/plugins/commonjs.ts @@ -27,7 +27,7 @@ const plugin: Plugin = { }); const requires: string[] = []; - const exports: string[] = []; + const exports: Set = new Set(); walk(ast as Node, null, { CallExpression: (node, context) => { @@ -52,9 +52,7 @@ const plugin: Plugin = { // Default is a special case (and would result in invalid syntax) and kinda fucked up: https://github.com/evanw/esbuild/issues/1719#issuecomment-953470495 if (node.left.property.name !== 'default') { - exports.push( - `export const ${node.left.property.name} = module.exports.${node.left.property.name};` - ); + exports.add(node.left.property.name); } } }); @@ -76,7 +74,10 @@ const plugin: Plugin = { `const exports = {}; const module = { exports };`, code, `export default module.exports;`, - exports.join('\n') + ...Array.from(exports).map((name) => { + const alias = `$$module_exports_${name}`; + return `const ${alias} = module.exports.${name}; export { ${alias} as ${name} };`; + }) ].join('\n\n'); return {