Files
2026-09-24 17:57:54 +02:00

27 lines
1.1 KiB
JavaScript

/**
* Kopiert Phaser aus node_modules nach app/static/js/lib/.
*
* Warum kopieren statt CDN: Das Spiel soll ohne externe Abhängigkeiten laufen
* (Offline-Betrieb, Datenschutz, strikte Content-Security-Policy). Die kopierte
* Datei wird mit ausgeliefert; auf dem Server ist daher kein Node nötig.
*
* Aufruf: npm run vendor:phaser
*/
import { copyFileSync, mkdirSync, readFileSync } from 'node:fs';
import { dirname, join } from 'node:path';
import { fileURLToPath } from 'node:url';
const root = join(dirname(fileURLToPath(import.meta.url)), '..');
const source = join(root, 'node_modules', 'phaser');
const target = join(root, 'app', 'static', 'js', 'lib');
const { version } = JSON.parse(readFileSync(join(source, 'package.json'), 'utf8'));
if (!version.startsWith('3.')) {
throw new Error(`Erwartet wird Phaser 3.x, gefunden: ${version}`);
}
mkdirSync(target, { recursive: true });
copyFileSync(join(source, 'dist', 'phaser.min.js'), join(target, 'phaser.min.js'));
copyFileSync(join(source, 'LICENSE.md'), join(target, 'PHASER_LICENSE.md'));
console.log(`Phaser ${version} nach ${target} kopiert.`);