'; } private static function jsPreloadImports(string $entry): string { if (getenv('VITE_ENV') === 'dev') { return ''; } $res = ''; foreach (static::importsUrls($entry) as $url) { $res .= ''; } return $res; } private static function cssTag(string $entry): string { // Not needed on dev, it's inject by Vite if (getenv('VITE_ENV') === 'dev' || strpos($entry, '.css') === false) { return ''; } $url = static::assetUrl($entry); if (!$url) { return ''; } return ''; } // Helpers to locate files private static function getManifest(): array { $content = file_get_contents(Piko::getAlias('@webroot/manifest.json')); return json_decode($content, true); } private static function assetUrl(string $entry): string { $manifest = static::getManifest(); return isset($manifest[$entry]) ? Piko::getAlias('@web/' . $manifest[$entry]['file']) : ''; } private static function importsUrls(string $entry): array { $urls = []; $manifest = static::getManifest(); if (!empty($manifest[$entry]['imports'])) { foreach ($manifest[$entry]['imports'] as $imports) { $urls[] = Piko::getAlias('@web/' . $manifest[$imports]['file']); } } return $urls; } }