27 lines
1.1 KiB
JavaScript
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.`);
|