forked from Rosetta/landing
test
This commit is contained in:
@@ -2,10 +2,31 @@ import { copyFile, mkdir } from 'node:fs/promises';
|
|||||||
import { resolve } from 'node:path';
|
import { resolve } from 'node:path';
|
||||||
|
|
||||||
const root = process.cwd();
|
const root = process.cwd();
|
||||||
|
const outputDirectory = resolve(root, 'dist');
|
||||||
const serverDirectory = resolve(root, 'dist', 'server');
|
const serverDirectory = resolve(root, 'dist', 'server');
|
||||||
|
const appShell = resolve(outputDirectory, 'index.html');
|
||||||
|
const browserRoutes = [
|
||||||
|
'encryption',
|
||||||
|
'privacy',
|
||||||
|
'proto',
|
||||||
|
'proto/docs',
|
||||||
|
'support',
|
||||||
|
'terms',
|
||||||
|
];
|
||||||
|
|
||||||
await mkdir(serverDirectory, { recursive: true });
|
await mkdir(serverDirectory, { recursive: true });
|
||||||
await copyFile(
|
await copyFile(
|
||||||
resolve(root, 'worker', 'index.js'),
|
resolve(root, 'worker', 'index.js'),
|
||||||
resolve(serverDirectory, 'index.js'),
|
resolve(serverDirectory, 'index.js'),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Emit an extensionless HTML match for every client-side route. This keeps
|
||||||
|
// browser refreshes working even when the asset layer handles navigations
|
||||||
|
// before the Worker gets a chance to return the SPA fallback.
|
||||||
|
await Promise.all(
|
||||||
|
browserRoutes.map(async (route) => {
|
||||||
|
const routeFile = resolve(outputDirectory, `${route}.html`);
|
||||||
|
await mkdir(resolve(routeFile, '..'), { recursive: true });
|
||||||
|
await copyFile(appShell, routeFile);
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user