-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvite.config.ts
61 lines (57 loc) · 1.54 KB
/
vite.config.ts
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
import { sveltekit } from '@sveltejs/kit/vite'
import UnoCSS from '@unocss/svelte-scoped/vite'
import { defineConfig } from 'vite'
import { copyFile, mkdir } from 'node:fs/promises'
import { readFileSync } from 'node:fs'
import { dirname, join } from 'node:path'
import { fileURLToPath } from 'node:url'
const file = fileURLToPath(new URL('package.json', import.meta.url))
const json = readFileSync(file, 'utf8')
const pkg = JSON.parse(json)
console.log(typeof pkg.version)
export default defineConfig({
plugins: [
sveltekit(),
UnoCSS({
injectReset: '@unocss/reset/tailwind.css',
}),
{
name: 'vite-plugin-pyodide',
buildStart: async () => {
const assetsDir = 'static/_app/immutable/workers/'
await mkdir(assetsDir, { recursive: true })
const files = [
'pyodide-lock.json',
'pyodide.asm.js',
'pyodide.asm.wasm',
'python_stdlib.zip',
]
const modulePath = fileURLToPath(import.meta.resolve('pyodide'))
for (const file of files) {
await copyFile(join(dirname(modulePath), file), join(assetsDir, file))
}
},
},
],
optimizeDeps: {
exclude: [
'svelte-codemirror-editor',
'codemirror',
'@codemirror/language-javascript',
'pyodide',
],
},
server: {
headers: {
'Access-Control-Allow-Origin': '*',
'Cross-Origin-Opener-Policy': 'same-origin',
'Cross-Origin-Embedder-Policy': 'require-corp',
},
},
worker: {
format: 'es',
},
define: {
PKG: pkg
}
})