its-personal/svelte.config.js

70 lines
2.4 KiB
JavaScript

// svelte adapter
import adapterNode from '@sveltejs/adapter-node'
import adapterVercel from '@sveltejs/adapter-vercel'
import adapterNetlify from '@sveltejs/adapter-netlify'
import adapterCloudflare from '@sveltejs/adapter-cloudflare'
import adapterStatic from '@sveltejs/adapter-static'
// svelte preprocessor
import { mdsvex } from 'mdsvex'
import mdsvexConfig from './mdsvex.config.js'
// import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'
import preprocess from 'svelte-preprocess'
function getAdapter() {
if (Object.keys(process.env).some(key => key.includes('VERCEL'))) {
return adapterVercel()
} else if (Object.keys(process.env).some(key => key.includes('NETLIFY'))) {
return adapterNetlify()
} else if (Object.keys(process.env).some(key => key.includes('CF_PAGES'))) {
return adapterCloudflare()
} else {
return process.env.ADAPTER === 'node'
? adapterNode({ out: 'build' })
: adapterStatic({
pages: 'build',
assets: 'build',
fallback: undefined
})
}
}
/** @type {import("@svletejs/kit".Config)} */
export default {
extensions: ['.svelte', ...(mdsvexConfig.extensions || [])],
preprocess: [preprocess({ postcss: true }), mdsvex(mdsvexConfig) /*, vitePreprocess()*/],
vitePlugin: {
inspector: true
},
kit: {
adapter: getAdapter(),
alias: {
$lib: './src/lib',
$root: './',
$src: './src',
$routes: './src/routes',
$content: './content'
},
csrf: {
checkOrigin: process.env.NODE_ENV === 'development' ? false : true
},
prerender: {
crawl: true,
handleMissingId: 'warn',
handleHttpError: ({ status, path, referrer, referenceType, message }) => {
// Handle blog trying to prerender relative links that it can't
if (
(status == 404 && path.startsWith('/blog')) ||
path.startsWith('/projects') ||
(path.startsWith('/') && referenceType == 'linked')
) {
console.warn(`PRERENDER ignored route ${path}`)
return
}
throw new Error(`${status} ${path} from ${referrer}, ~~~~~~~~~ message: ${message}~~~~~~~~~`)
}
}
}
}