mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-25 23:49:13 +08:00
64 lines
1.7 KiB
Text
64 lines
1.7 KiB
Text
import { platforms } from './platforms.js';
|
|
|
|
/** @type {import('.').default} */
|
|
export default function (options) {
|
|
return {
|
|
name: '@sveltejs/adapter-static',
|
|
|
|
async adapt(builder) {
|
|
if (!options?.fallback && !builder.config.kit.prerender.default) {
|
|
throw Error(
|
|
'adapter-static requires `config.kit.prerender.default` to be `true` unless you set the `fallback: true` option to create a single-page app. See https://github.com/sveltejs/kit/tree/master/packages/adapter-static#spa-mode for more information'
|
|
);
|
|
}
|
|
|
|
const platform = platforms.find((platform) => platform.test());
|
|
|
|
if (platform) {
|
|
if (options) {
|
|
builder.log.warn(
|
|
`Detected ${platform.name}. Please remove adapter-static options to enable zero-config mode`
|
|
);
|
|
} else {
|
|
builder.log.info(`Detected ${platform.name}, using zero-config mode`);
|
|
}
|
|
}
|
|
|
|
const {
|
|
pages = 'build',
|
|
assets = pages,
|
|
fallback,
|
|
precompress
|
|
} = options ??
|
|
platform?.defaults(builder.config) ??
|
|
/** @type {import('./index').AdapterOptions} */ ({});
|
|
|
|
builder.rimraf(assets);
|
|
builder.rimraf(pages);
|
|
|
|
builder.writeClient(assets);
|
|
builder.writePrerendered(pages, { fallback });
|
|
|
|
if (precompress) {
|
|
if (pages === assets) {
|
|
builder.log.minor('Compressing assets and pages');
|
|
await builder.compress(assets);
|
|
} else {
|
|
builder.log.minor('Compressing assets');
|
|
await builder.compress(assets);
|
|
|
|
builder.log.minor('Compressing pages');
|
|
await builder.compress(pages);
|
|
}
|
|
}
|
|
|
|
if (pages === assets) {
|
|
builder.log(`Wrote site to "${pages}"`);
|
|
} else {
|
|
builder.log(`Wrote pages to "${pages}" and assets to "${assets}"`);
|
|
}
|
|
|
|
if (!options) platform?.done(builder);
|
|
}
|
|
};
|
|
}
|