littlejsengine
Version:
LittleJS - Tiny and Fast HTML5 Game Engine
31 lines (24 loc) • 1.09 kB
JavaScript
const PROGRAM_NAME = 'game';
const BUILD_FOLDER = 'build';
// Define TypeScript source files
const tsSourceFiles = [
'game.ts',
// add your TypeScript files here
];
// Corresponding JS output files
const jsSourceFiles = tsSourceFiles.map(file => file.replace('.ts', '.js'));
console.log(`Building TypeScript for ${PROGRAM_NAME}...`);
const startTime = Date.now();
const fs = require('node:fs');
const child_process = require('node:child_process');
console.log(`Removing old build folder...`);
fs.rmSync(BUILD_FOLDER, { recursive: true, force: true });
console.log(`Compiling TypeScript...`);
// Compile all TypeScript files at once
const tsFiles = tsSourceFiles.join(' ');
child_process.execSync(`npx tsc ${tsFiles} --outDir './${BUILD_FOLDER}' --target es2020 --module es2020`, {stdio: 'inherit'});
console.log(`TypeScript built in ${((Date.now() - startTime)/1e3).toFixed(2)} seconds!`);
console.log(`Moving js files back to root...`);
for (const file of jsSourceFiles)
fs.copyFileSync(`${BUILD_FOLDER}/${file}`, file);