1
0
forked from baron/baron-sso

[WIP]모바일 로그인창 테스트 강화중

This commit is contained in:
2026-05-27 12:29:56 +09:00
parent 368f4bbad8
commit e240470d04
10 changed files with 199 additions and 20 deletions

View File

@@ -78,15 +78,18 @@ const canvasKitConfig = 'config:{canvasKitBaseUrl:"canvaskit/"}';
bootstrap = bootstrap.replace(
/_flutter\.loader\.load\(\{\s*serviceWorkerSettings:\s*(\{[^{}]*\})\s*,\s*config:\s*\{[\s\S]*?serviceWorkerUrl[\s\S]*?\}\s*,\s*config:\s*\{[^}]*\}\s*\}\);/g,
`_flutter.loader.load({${canvasKitConfig}});`,
(_match, settings) =>
`_flutter.loader.load({serviceWorkerSettings:${ensureServiceWorkerUrl(settings)},${canvasKitConfig}});`,
);
bootstrap = bootstrap.replace(
/_flutter\.loader\.load\(\{\s*serviceWorkerSettings:\s*(\{[^{}]*\})\s*,\s*config:\s*\{[^}]*\}\s*\}\);/g,
`_flutter.loader.load({${canvasKitConfig}});`,
(_match, settings) =>
`_flutter.loader.load({serviceWorkerSettings:${ensureServiceWorkerUrl(settings)},${canvasKitConfig}});`,
);
bootstrap = bootstrap.replace(
/_flutter\.loader\.load\(\{\s*serviceWorkerSettings:\s*(\{[^{}]*\})\s*\}\);/g,
`_flutter.loader.load({${canvasKitConfig}});`,
(_match, settings) =>
`_flutter.loader.load({serviceWorkerSettings:${ensureServiceWorkerUrl(settings)},${canvasKitConfig}});`,
);
bootstrap = bootstrap.replace(
/_flutter\.loader\.load\(\);/g,
@@ -302,4 +305,34 @@ async function cacheFirst(request) {
`;
}
function ensureServiceWorkerUrl(settings) {
const serviceWorkerUrl = `"/flutter_service_worker.js?v=" + ${serviceWorkerVersionExpression(settings)}`;
if (/serviceWorkerUrl\s*:/.test(settings)) {
return settings.replace(
/serviceWorkerUrl\s*:\s*[^,\n}]+,?/,
`serviceWorkerUrl: ${serviceWorkerUrl},`,
);
}
const closingBraceIndex = settings.lastIndexOf('}');
if (closingBraceIndex < 0) {
return settings;
}
const beforeClosing = settings.slice(0, closingBraceIndex).trimEnd();
const afterClosing = settings.slice(closingBraceIndex);
const separator =
beforeClosing.endsWith('{') || beforeClosing.endsWith(',') ? '' : ',';
return `${beforeClosing}${separator}
serviceWorkerUrl: ${serviceWorkerUrl},
${afterClosing}`;
}
function serviceWorkerVersionExpression(settings) {
const match = settings.match(/serviceWorkerVersion\s*:\s*([^,\n}]+)/);
return (
match?.[1]?.replace(/\/\*[\s\S]*?\*\//g, '').trim() ??
'serviceWorkerVersion'
);
}
console.log(`[userfront] optimized ${basename(buildDir)} with hashed entrypoints and brotli assets`);