/** * 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.`);