Ctrl K
ComunidadGuías…

static/build.mjs

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
// Minifies analytics.js and replay.js, and bakes a content hash of the minified
// replay.js into analytics.js as its cache-buster.
// usage: node build.mjs <srcDir> <outDir>
import { execFileSync } from 'node:child_process';
import { createHash } from 'node:crypto';
import { readFileSync } from 'node:fs';
import path from 'node:path';

const [srcDir = '.', outDir = '.'] = process.argv.slice(2);

function esbuild(...args) {
  execFileSync('npx', ['--yes', 'esbuild@0.28.1', ...args], { stdio: 'inherit' });
}

const replayOut = path.join(outDir, 'replay.min.js');
esbuild(path.join(srcDir, 'replay.js'), '--minify', `--outfile=${replayOut}`);

const replayHash = createHash('sha256').update(readFileSync(replayOut)).digest('hex').slice(0, 8);

esbuild(
  path.join(srcDir, 'analytics.js'),
  '--minify',
  `--define:__BL_REPLAY_HASH__="${replayHash}"`,
  `--outfile=${path.join(outDir, 'analytics.min.js')}`,
);

console.log(`replay.js hash: ${replayHash}`);