[...], 'type' => '...', 'target' => '...', 'theme' => '...'] \$entries = \$params['entries']; \$type = \$params['type'] ?? 'core'; \$target = \$params['target'] ?? 'admin'; \$themeName = \$params['theme'] ?? theme_name(\$type, \$target); } else { // 단순 배열 형태: [entry1, entry2, ...] \$entries = \$params; \$type = 'core'; \$target = 'admin'; \$themeName = theme_name(\$type, \$target); } } else { // 단일 값인 경우 \$entries = [\$params]; \$type = 'core'; \$target = 'admin'; \$themeName = theme_name(\$type, \$target); } // Vite 개발 서버 실행 여부 확인 \$viteDevServerRunning = false; \$viteDevServerUrl = config('app.vite_dev_server_url', 'http://localhost:5173'); if (app()->environment('local', 'development')) { \$context = stream_context_create([ 'http' => [ 'timeout' => 1, 'ignore_errors' => true ] ]); \$viteDevServerRunning = @file_get_contents(\$viteDevServerUrl . '/@vite/client', false, \$context) !== false; } if (\$viteDevServerRunning) { // 개발 서버가 실행 중인 경우 - Vite 개발 서버 사용 echo ''; foreach (\$entries as \$entry) { echo ''; } } else { // 프로덕션 또는 개발 서버 미실행 - 빌드된 파일 사용 \$buildPath = resource_path('themes/' . \$type . '/' . \$target . '/' . \$themeName . '/build'); \$manifestPath = \$buildPath . '/manifest.json'; if (file_exists(\$manifestPath) && is_array(\$entries)) { \$manifest = json_decode(file_get_contents(\$manifestPath), true); foreach (\$entries as \$entry) { if (isset(\$manifest[\$entry])) { \$entryData = \$manifest[\$entry]; // JavaScript 파일 로드 if (isset(\$entryData['file'])) { \$jsFileName = basename(\$entryData['file']); \$jsFileName = preg_replace('/^(.+?)-[^.]+\.js$/', '\$1.js', \$jsFileName); \$routeParams = [ 'themeName' => \$themeName, 'path' => \$jsFileName, 'type' => \$type, 'target' => \$target ]; // 모듈명이 있는 경우 추가 \$moduleName = \$params['module_name'] ?? null; if (\$moduleName) { \$routeParams['module_name'] = \$moduleName; } echo ''; } // CSS 파일 로드 if (isset(\$entryData['css'])) { foreach (\$entryData['css'] as \$cssFile) { \$cssFileName = basename(\$cssFile); \$cssFileName = preg_replace('/^(.+?)-[^.]+\.css$/', '\$1.css', \$cssFileName); \$routeParams = [ 'themeName' => \$themeName, 'path' => \$cssFileName, 'type' => \$type, 'target' => \$target ]; // 모듈명이 있는 경우 추가 \$moduleName = \$params['module_name'] ?? null; if (\$moduleName) { \$routeParams['module_name'] = \$moduleName; } echo ''; } } } } } } ?>"; }); } }