Adapter for SvelteKit apps that generates a standalone Deno or Deno Deploy server
npm install sveltekit-adapter-deno⚠️ This project is no longer maintained! ⚠️
Deno is now mostly compatible with SvelteKit and the official adapters should be preferred.
This adapter still works for Deno and Deno Deploy but I no longer use nor maintain it.
I would not recommend Deno Deploy for website hosting due to unresolved isolate start-up time issues and increased latency due to the reduction in regions.
*
Adapter for
SvelteKit apps that generates a standalone
Deno or Deno Deploy
server.
Install in your SvelteKit project:
``sh`
npm install --save-dev sveltekit-adapter-deno
Add the adapter to your
SvelteKit configuration.
`js
// svelte.config.js
import adapter from "sveltekit-adapter-deno";
/* @type {import('@sveltejs/kit').Config} /
const config = {
kit: {
adapter: adapter(),
},
};
export default config;
`
Build the app for production (npm run build).
Serve with Deno from the build directory:
`sh`
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:
`sh`
deployctl deploy --project=demo --import-map=import_map.json mod.ts
The following environment variables can be used to change the port and hostname:
`sh`
PORT=5678 HOST=0.0.0.0 deno run --allow-env --allow-read --allow-net mod.ts
The default port is 8000 and the default hostname is 0.0.0.0.
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 isusage: 'deno'
needed for the static and prerendered files). The default is import.meta.url
which uses the to get the current directory. If you want todeno compile
compile the result with you should use usage: 'deno-compile'Deno.execPath()
which uses to get the current directory.
Import Node modules in server routes with the node: prefix:
`js`
import * as fs from "node:fs";
import { Buffer } from "node:buffer";
Import NPM modules as if coding for Node:
`js``
import slugify from "@sindresorhus/slugify";
console.log(slugify("I ♥ Deno"));
This repo publishes a SvelteKit demo app to Deno Deploy at:
sveltekit-adapter-deno.deno.dev
---
MIT License | Copyright © 2023 David Bushell