website/versioned_docs/version-v2.12.0/guides/sveltekit.mdx
This guide will go into:
wails init -n myapp -t sveltenpx sv create frontend"wailsjsdir": "./frontend/src/lib", Do note that this is where your Go and runtime functions will appear.//go:embed all:frontend/dist needs to be changed to //go:embed all:frontend/buildfrontend/dist needs to be replaced with frontend/buildnpm inpm uninstall @sveltejs/adapter-autonpm i -D @sveltejs/adapter-staticimport adapter from '@sveltejs/adapter-auto'; to import adapter from '@sveltejs/adapter-static';export const prerender = true and export const ssr = falsewails devchmod +x sveltekit-wails.sh./sveltekit-wails.sh pnpm newapp brandmanager=$1
project=$2
brand=$3
wails init -n $project -t svelte
cd $project
sed -i "s|npm|$manager|g" wails.json
sed -i 's|"auto",|"auto",\n "wailsjsdir": "./frontend/src/lib",|' wails.json
sed -i "s|all:frontend/dist|all:frontend/build|" main.go
if [[ -n $brand ]]; then
mv frontend/src/App.svelte +page.svelte
sed -i "s|'./assets|'\$lib/assets|" +page.svelte
sed -i "s|'../wails|'\$lib/wails|" +page.svelte
mv frontend/src/assets .
fi
rm -r frontend
$manager create svelte@latest frontend
if [[ -n $brand ]]; then
mv +page.svelte frontend/src/routes/+page.svelte
mkdir frontend/src/lib
mv assets frontend/src/lib/
fi
cd frontend
$manager i
$manager uninstall @sveltejs/adapter-auto
$manager i -D @sveltejs/adapter-static
echo -e "export const prerender = true\nexport const ssr = false" > src/routes/+layout.ts
sed -i "s|-auto';|-static';|" svelte.config.js
cd ..
wails dev
window.location.href = '/<some>/<page>' or Context menu reload when using wails dev. What this means is that you can end up losing the ability to call any runtime breaking the app. There are two ways to work around this.import { goto } from '$app/navigation' then call goto('/<some>/<page>') in your +page.svelte. This will prevent a full page navigation.<head> of myapp/frontend/src/app.html<head>
...
<meta name="wails-options" content="noautoinject" />
<script src="/wails/ipc.js"></script>
<script src="/wails/runtime.js"></script>
...
</head>
See https://wails.io/docs/guides/frontend for more information.
import { WindowReloadApp } from '$lib/wailsjs/runtime/runtime'
export async function handleError() {
WindowReloadApp()
}
<form method="POST" on:submit|preventDefault={handle}><form method="POST" use:enhance={({cancel, formData, formElement, submitter}) => {
cancel()
console.log(Object.fromEntries(formData))
console.log(formElement)
console.log(submitter)
handle()
}}>