#!/usr/bin/env node import { execSync } from 'child_process'; import { readFileSync, writeFileSync } from 'fs'; import { resolve } from 'path'; console.log('šŸš€ Building standalone QR Code Utils bundle...\n'); try { // Build the standalone bundle console.log('šŸ“¦ Building with Vite...'); execSync('npm run build:standalone', { stdio: 'inherit' }); // Get bundle info const bundlePath = resolve('./dist/qr-code-utils.iife.js'); const bundleStats = readFileSync(bundlePath, 'utf8'); const bundleSize = (bundleStats.length / 1024).toFixed(2); console.log('\nāœ… Standalone bundle created successfully!'); console.log(`šŸ“ Location: dist/qr-code-utils.iife.js`); console.log(`šŸ“ Size: ${bundleSize} KB`); // Create bundle info file const bundleInfo = { name: 'qr-code-utils', version: '1.0.0', description: 'Standalone QR Code Generator with Image Support', formats: ['ES Module', 'UMD', 'IIFE'], dependencies: ['qrcode', 'imagetracer'], size: `${bundleSize} KB`, usage: { browser: '', esm: 'import { generateQRCode } from "qr-code-utils.es.js"', umd: 'const { generateQRCode } = require("qr-code-utils.umd.js")' } }; writeFileSync('./dist/bundle-info.json', JSON.stringify(bundleInfo, null, 2)); console.log('\nšŸ“‹ Bundle Information:'); console.log(' • Includes all dependencies (qrcode, imagetracer)'); console.log(' • No external dependencies required'); console.log(' • Works in browsers, Node.js, and bundlers'); console.log(' • Optimized and minified for production'); console.log('\nšŸŽÆ Usage Examples:'); console.log(' Browser: '); console.log(' ESM: import { generateQRCode } from "qr-code-utils.es.js"'); console.log(' UMD: const { generateQRCode } = require("qr-code-utils.umd.js")'); console.log('\nšŸ“– See examples/standalone-bundle-example.html for a complete example'); } catch (error) { console.error('āŒ Build failed:', error.message); process.exit(1); }