Fix ES module/CommonJS mismatch in shared package

- Rename CommonJS build output from .js to .cjs extensions
- Add .js extensions to ESM imports (required by Node.js)
- Add .cjs extensions to CommonJS requires
- Add post-build scripts for both ESM and CommonJS builds
- Update package.json exports to reference .cjs files for require()

Fixes: ReferenceError: exports is not defined in ES module scope

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-07-08 15:23:06 +02:00
co-authored by Copilot
parent 018a7aefc7
commit d486655f54
3 changed files with 62 additions and 3 deletions
+30
View File
@@ -0,0 +1,30 @@
const fs = require('fs');
const path = require('path');
// Recursively process all .js files in esm directory
function processDirectory(dir) {
const files = fs.readdirSync(dir);
files.forEach(file => {
const filePath = path.join(dir, file);
const stat = fs.statSync(filePath);
if (stat.isDirectory()) {
processDirectory(filePath);
} else if (file.endsWith('.js')) {
// Read the file
let content = fs.readFileSync(filePath, 'utf8');
// Replace import/export statements to add .js extension
// Replace from "./path" with from "./path.js" (for relative imports only)
content = content.replace(/from ["'](\.[^"']*?)(?<!\.js)["']/g, 'from "$1.js"');
// Write back
fs.writeFileSync(filePath, content, 'utf8');
console.log(`✓ Updated ${filePath}`);
}
});
}
processDirectory('./dist/esm');
console.log('✓ ESM post-build processing complete');