Write Python endpoints in SvelteKit using Modal.
+server.py
just like your +server.js
filesnpm i -D sveltekit-modal
Update vite.config.js
import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';
import { sveltekit_modal } from 'sveltekit-modal/vite'; //Add this import
export default defineConfig({
plugins: [sveltekit_modal(), sveltekit()] //Add the `sveltekit_modal()` plugin
});
Update svelte.config.js
import adapter from '@sveltejs/adapter-auto';
import { vitePreprocess } from '@sveltejs/kit/vite';
/** @type {import('@sveltejs/kit').Config} */
const config = {
preprocess: vitePreprocess(),
kit: {
adapter: adapter(),
moduleExtensions: [".js", ".ts", ".py"] //Add this line, to resolve +server.py endpoints
}
};
export default config;
sveltekit_modal_config.py
. The option stub_asgi
is passed to Modal. This is where you can define GPU acceleration, secrets, and an Image for pip installs, etc. Explore their docs!
import modal
config = { 'name': 'sveltekit-example', 'log': False, 'stub_asgi': { 'image': modal.Image.debian_slim() } }
- Update `.gitignore`, add `!.env.production`.
- Write your endpoints! See an example [here](https://github.com/semicognitive/sveltekit-modal-langchain).
npm run dev
npx sveltekit-modal deploy
The example_app/
directory contains an incredibly bare and demonstrates how to get it working.