const fs = require('fs'); const path = require('path'); const distDir = path.resolve(__dirname, '..', 'dist'); function walk(dir) { if (!fs.existsSync(dir)) { return []; } return fs.readdirSync(dir, { withFileTypes: true }).flatMap((entry) => { const fullPath = path.join(dir, entry.name); if (entry.isDirectory()) { return walk(fullPath); } return fullPath.endsWith('.js') ? [fullPath] : []; }); } function toRequirePath(fromFile, srcImport) { const target = path.join(distDir, srcImport.replace(/^src[\\/]/, '')); let relative = path.relative(path.dirname(fromFile), target).replace(/\\/g, '/'); if (!relative.startsWith('.')) { relative = `./${relative}`; } return relative; } for (const file of walk(distDir)) { const source = fs.readFileSync(file, 'utf8'); const rewritten = source.replace(/require\((['"])src\/([^'"]+)\1\)/g, (_match, quote, importPath) => { return `require(${quote}${toRequirePath(file, `src/${importPath}`)}${quote})`; }); if (rewritten !== source) { fs.writeFileSync(file, rewritten); } }