mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-04 20:29:31 +08:00
57 lines
1.5 KiB
Text
57 lines
1.5 KiB
Text
import { writeFileSync } from 'fs';
|
|
import { posix } from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
import * as esbuild from 'esbuild';
|
|
|
|
/** @type {import('.').default} */
|
|
export default function () {
|
|
// TODO remove for 1.0
|
|
if (arguments.length > 0) {
|
|
throw new Error(
|
|
'esbuild options can no longer be passed to adapter-cloudflare — see https://github.com/sveltejs/kit/pull/4639'
|
|
);
|
|
}
|
|
|
|
return {
|
|
name: '@sveltejs/adapter-cloudflare',
|
|
async adapt(builder) {
|
|
const files = fileURLToPath(new URL('./files', import.meta.url).href);
|
|
const dest = builder.getBuildDirectory('cloudflare');
|
|
const tmp = builder.getBuildDirectory('cloudflare-tmp');
|
|
|
|
builder.rimraf(dest);
|
|
builder.rimraf(tmp);
|
|
builder.mkdirp(tmp);
|
|
|
|
builder.writeClient(dest);
|
|
builder.writePrerendered(dest);
|
|
|
|
const relativePath = posix.relative(tmp, builder.getServerDirectory());
|
|
|
|
writeFileSync(
|
|
`${tmp}/manifest.js`,
|
|
`export const manifest = ${builder.generateManifest({
|
|
relativePath
|
|
})};\n\nexport const prerendered = new Set(${JSON.stringify(builder.prerendered.paths)});\n`
|
|
);
|
|
|
|
builder.copy(`${files}/worker.js`, `${tmp}/_worker.js`, {
|
|
replace: {
|
|
SERVER: `${relativePath}/index.js`,
|
|
MANIFEST: './manifest.js'
|
|
}
|
|
});
|
|
|
|
await esbuild.build({
|
|
platform: 'browser',
|
|
sourcemap: 'linked',
|
|
target: 'es2020',
|
|
entryPoints: [`${tmp}/_worker.js`],
|
|
outfile: `${dest}/_worker.js`,
|
|
allowOverwrite: true,
|
|
format: 'esm',
|
|
bundle: true
|
|
});
|
|
}
|
|
};
|
|
}
|