feat: add vite module federation support

This commit is contained in:
2025-07-01 22:26:34 -04:00
parent aee7c37b74
commit 36db88dab3
4 changed files with 42 additions and 1 deletions

View File

@@ -0,0 +1,31 @@
const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');
const ora = require('ora');
function setupModuleFederation() {
const spinner = ora('🔗 Setting up Module Federation...').start();
try {
execSync('npm install --save-dev @originjs/vite-plugin-federation', { stdio: 'inherit' });
const configPath = path.resolve('vite.config.js');
let config = fs.readFileSync(configPath, 'utf8');
if (!config.includes('@originjs/vite-plugin-federation')) {
const importLine = "import federation from '@originjs/vite-plugin-federation';\n";
config = importLine + config;
config = config.replace(/plugins:\s*\[(.*?)\]/s, (match, p1) => {
const plugins = p1.trim();
return `plugins: [${plugins ? plugins + ', ' : ''}federation({})]`;
});
fs.writeFileSync(configPath, config);
}
spinner.succeed('🔗 Module Federation configured.');
} catch (error) {
spinner.fail('❌ Failed to set up Module Federation.');
console.error(error);
}
}
module.exports = { setupModuleFederation };