-
Notifications
You must be signed in to change notification settings - Fork 2
/
svelte.config.js
95 lines (87 loc) · 2.62 KB
/
svelte.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/** @type {import('@sveltejs/kit').Config} */
import adapter from '@sveltejs/adapter-static';
import { mdsvex } from 'mdsvex';
import mdsvexConfig from './mdsvex.config.js';
import sveltePreprocess from 'svelte-preprocess';
const config = {
extensions: ['.svelte', ...mdsvexConfig.extensions],
preprocess: [
mdsvex(mdsvexConfig),
sveltePreprocess(),
],
kit: {
adapter: adapter(),
},
// some config to compile Svelte components as Custom Elements if they have `<svelte:options tag=`
vitePlugin: {
dynamicCompileOptions({code}) {
if(isWebComponentSvelte(code)) {
return {
customElement: true
}
}
}
}
};
function isWebComponentSvelte(code) {
const svelteOptionsIdx = code.indexOf('<svelte:options ')
if(svelteOptionsIdx < 0) {
return false
}
const tagOptionIdx = code.indexOf('tag=', svelteOptionsIdx)
const svelteOptionsEndIdx = code.indexOf('>',svelteOptionsIdx);
return tagOptionIdx > svelteOptionsIdx && tagOptionIdx < svelteOptionsEndIdx
}
// const config = {
// // options passed to svelte.compile (https://svelte.dev/docs#svelte_compile)
// compilerOptions: null,
// // an array of file extensions that should be treated as Svelte components
// extensions: ['.svelte'],
// kit: {
// adapter: null,
// amp: false,
// appDir: '_app',
// files: {
// assets: 'static',
// hooks: 'src/hooks',
// lib: 'src/lib',
// routes: 'src/routes',
// serviceWorker: 'src/service-worker',
// template: 'src/app.html'
// },
// floc: false,
// host: null,
// hostHeader: null,
// hydrate: true,
// package: {
// dir: 'package',
// emitTypes: true,
// // excludes all .d.ts and files starting with _ as the name
// exports: (filepath) => !/^_|\/_|\.d\.ts$/.test(filepath),
// files: () => true
// },
// paths: {
// assets: '',
// base: ''
// },
// prerender: {
// crawl: true,
// enabled: true,
// entries: ['*'],
// onError: 'fail'
// },
// router: true,
// serviceWorker: {
// files: (filepath) => !/\.DS_STORE/.test(filepath)
// },
// ssr: true,
// target: null,
// trailingSlash: 'never',
// vite: () => ({})
// },
// // SvelteKit uses vite-plugin-svelte. Its options can be provided directly here.
// // See the available options at https://github.com/sveltejs/vite-plugin-svelte/blob/main/docs/config.md
// // options passed to svelte.preprocess (https://svelte.dev/docs#svelte_preprocess)
// preprocess: null
// };
export default config;