Files
SonicForgeStudio/build.mjs
T

18 lines
824 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;
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');