forked from baron/baron-sso
[WIP]모바일 로그인창 테스트 강화중
This commit is contained in:
@@ -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`);
|
||||
|
||||
Reference in New Issue
Block a user