2023-10-22 04:43:56 +08:00
|
|
|
import adapter from '@sveltejs/adapter-static';
|
2025-05-13 13:48:29 +08:00
|
|
|
import * as child_process from 'node:child_process';
|
2024-08-05 23:00:30 +08:00
|
|
|
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
|
2025-05-19 23:17:08 +08:00
|
|
|
import fs from 'node:fs';
|
2023-10-09 06:38:42 +08:00
|
|
|
|
|
|
|
/** @type {import('@sveltejs/kit').Config} */
|
|
|
|
const config = {
|
|
|
|
// Consult https://kit.svelte.dev/docs/integrations#preprocessors
|
|
|
|
// for more information about preprocessors
|
|
|
|
preprocess: vitePreprocess(),
|
|
|
|
kit: {
|
|
|
|
// adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
|
|
|
|
// If your environment is not supported or you settled on a specific environment, switch out the adapter.
|
|
|
|
// See https://kit.svelte.dev/docs/adapters for more information about adapters.
|
2023-10-22 04:43:56 +08:00
|
|
|
adapter: adapter({
|
|
|
|
pages: 'build',
|
|
|
|
assets: 'build',
|
2023-11-15 08:28:51 +08:00
|
|
|
fallback: 'index.html'
|
2025-05-13 13:48:29 +08:00
|
|
|
}),
|
|
|
|
// poll for new version name every 60 seconds (to trigger reload mechanic in +layout.svelte)
|
|
|
|
version: {
|
2025-05-19 23:17:08 +08:00
|
|
|
name: (() => {
|
|
|
|
try {
|
|
|
|
return child_process.execSync('git rev-parse HEAD').toString().trim();
|
|
|
|
} catch {
|
|
|
|
// if git is not available, fallback to package.json version
|
|
|
|
// or current timestamp
|
|
|
|
try {
|
|
|
|
return (
|
|
|
|
JSON.parse(fs.readFileSync(new URL('./package.json', import.meta.url), 'utf8'))
|
|
|
|
?.version || Date.now().toString()
|
|
|
|
);
|
|
|
|
} catch {
|
|
|
|
return Date.now().toString();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})(),
|
2025-05-13 13:48:29 +08:00
|
|
|
pollInterval: 60000
|
|
|
|
}
|
2024-03-27 07:07:01 +08:00
|
|
|
},
|
2025-01-16 20:29:00 +08:00
|
|
|
vitePlugin: {
|
2025-02-02 13:01:06 +08:00
|
|
|
// inspector: {
|
|
|
|
// toggleKeyCombo: 'meta-shift', // Key combination to open the inspector
|
|
|
|
// holdMode: false, // Enable or disable hold mode
|
|
|
|
// showToggleButton: 'always', // Show toggle button ('always', 'active', 'never')
|
|
|
|
// toggleButtonPos: 'bottom-right' // Position of the toggle button
|
|
|
|
// }
|
2025-01-16 20:29:00 +08:00
|
|
|
},
|
2024-03-31 16:59:10 +08:00
|
|
|
onwarn: (warning, handler) => {
|
2025-01-16 20:29:00 +08:00
|
|
|
const { code } = warning;
|
2024-03-31 16:59:10 +08:00
|
|
|
if (code === 'css-unused-selector') return;
|
2024-03-27 07:07:01 +08:00
|
|
|
|
2024-03-31 16:59:10 +08:00
|
|
|
handler(warning);
|
|
|
|
}
|
2023-10-09 06:38:42 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
export default config;
|