import * as Babel from '@babel/standalone'; import { readFileSync, writeFileSync } from 'fs'; // Cache-buster: argv[2] = 'yyyyMMddHHmm' (build_windows.ps1 truyen); mac dinh // = thoi diem build. Stamp MOI URL asset (?v=) TRONG OUTPUT (khong sua source // app.jsx) -> khong bao gio quen bump version sau khi rebuild bundle. const ver = process.argv[2] || new Date().toISOString().replace(/\D/g, '').slice(0, 12); const src = readFileSync('app/static/js/app.jsx', 'utf8'); const transformed = Babel.transform(src, { presets: ['react'], filename: 'app.jsx', sourceType: 'script', }).code; const out = transformed.replace(/(sf-fx-realtime\.js\?v=)\d+/g, '$1' + ver); writeFileSync('app/static/js/app.precompiled.js', out.replace(/\r?\n/g, '\r\n')); // repo CRLF console.log('BUILD OK', 'v=' + ver, out.length, 'bytes');