sveltekit-adapter-deno
Adapter for
SvelteKit apps that generates a standalone
Deno or Deno Deploy
server.
Usage
Install in your SvelteKit project:
npm install --save-dev sveltekit-adapter-deno
Add the adapter to your
SvelteKit configuration.
import adapter from "sveltekit-adapter-deno";
const config = {
kit: {
adapter: adapter(),
},
};
export default config;
Build the app for production (npm run build
).
Serve with Deno from the build directory:
deno run --allow-env --allow-read --allow-net mod.ts
For Deno Deploy set the entry point to mod.ts
.
See the GitHub Action workflow for automated
deployment.
Using deployctl:
deployctl deploy --project=demo --import-map=import_map.json mod.ts
Adapter options
See the TypeScript definition for AdapterOptions
. You can
specify the build output directory and provide additional esbuild options.
The usage
option is used to determine where the current directory is (this is
needed for the static and prerendered files). The default is usage: 'deno'
which uses the import.meta.url
to get the current directory. If you want to
compile the result with deno compile
you should use usage: 'deno-compile'
which uses Deno.execPath()
to get the current directory.
Node and NPM modules
Import Node modules in server routes with the node:
prefix:
import * as fs from "node:fs";
import { Buffer } from "node:buffer";
Import NPM modules as if coding for Node:
import slugify from "@sindresorhus/slugify";
console.log(slugify("I ♥ Deno"));
Demo App
This repo publishes a SvelteKit demo app to Deno Deploy at:
sveltekit-adapter-deno.deno.dev
MIT License | Copyright © 2023 David Bushell