19 lines
917 B
JavaScript
19 lines
917 B
JavaScript
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;
|
|
// M25: gom ca fx-rt-worker.js vao cache-buster (worker URL trong app.jsx).
|
|
const out = transformed.replace(/((?:sf-fx-realtime|fx-rt-worker)\.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');
|