All Projects β†’ pluvial β†’ svelte-adapter-deno

pluvial / svelte-adapter-deno

Licence: MIT license
A SvelteKit adapter for Deno

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to svelte-adapter-deno

programmingtil-svelte
No description or website provided.
Stars: ✭ 59 (-61.18%)
Mutual labels:  svelte, sveltekit
Beatbump
Alternative YouTube Music frontend built with Svelte/SvelteKit 🎧
Stars: ✭ 77 (-49.34%)
Mutual labels:  svelte, sveltekit
awesome-svelte-kit
Curated resources on building sites with SvelteKit - A server-less-first answer to "the Next.js experience" by the Svelte community
Stars: ✭ 55 (-63.82%)
Mutual labels:  svelte, sveltekit
hue.tools
Simple toolbox for working with colors. Color mixing, blending, conversion, modification, detailed information, etc.
Stars: ✭ 331 (+117.76%)
Mutual labels:  svelte, sveltekit
sveltekit-blog
Sveltekit blog starter project created with sveltekit, typescript, tailwindcss, postcss, husky, and storybook. The project has the structure set up for the scaleable web application.
Stars: ✭ 100 (-34.21%)
Mutual labels:  svelte, sveltekit
svelte-starter-kit
Svelte with brilliant bells and useful whistles
Stars: ✭ 384 (+152.63%)
Mutual labels:  svelte, sveltekit
markushatvan.com
Personal website and blog written from scratch with SvelteKit and TailwindCSS.
Stars: ✭ 82 (-46.05%)
Mutual labels:  svelte, sveltekit
webstone
Start your next full-stack application with Webstone and configure it as you go.
Stars: ✭ 71 (-53.29%)
Mutual labels:  svelte, sveltekit
sveltekit-blog-template
A SvelteKit blog template
Stars: ✭ 79 (-48.03%)
Mutual labels:  svelte, sveltekit
Fe News
FE 기술 μ†Œμ‹ νλ ˆμ΄μ…˜ λ‰΄μŠ€λ ˆν„°
Stars: ✭ 2,249 (+1379.61%)
Mutual labels:  svelte, deno
website
Gitpod website and documentation
Stars: ✭ 233 (+53.29%)
Mutual labels:  svelte, sveltekit
sveltekit-magic
An implementation of passwordless authentication using Magic with SvelteKit.
Stars: ✭ 38 (-75%)
Mutual labels:  svelte, sveltekit
svelte-toy
A toy for svelte data stores
Stars: ✭ 73 (-51.97%)
Mutual labels:  svelte, sveltekit
focus-svelte
focus lock for svelte
Stars: ✭ 18 (-88.16%)
Mutual labels:  svelte, sveltekit
kickstart
Ruby on Rails application templates
Stars: ✭ 61 (-59.87%)
Mutual labels:  svelte, sveltekit
turbosvelte
A SvelteKit monorepo starter project powered by Turborepo!
Stars: ✭ 47 (-69.08%)
Mutual labels:  svelte, sveltekit
sveltekit-electron
Minimal Sveltekit + Electron starter template.
Stars: ✭ 146 (-3.95%)
Mutual labels:  svelte, sveltekit
website
🏑 My personal website! Now built with Svelte...
Stars: ✭ 18 (-88.16%)
Mutual labels:  svelte, sveltekit
matfantinel.github.io
Personal website made with SvelteKit and hosted on GitHub Pages
Stars: ✭ 80 (-47.37%)
Mutual labels:  svelte, sveltekit
hagura-sveltekit
A minimal markdown blog template built using SvelteKit
Stars: ✭ 51 (-66.45%)
Mutual labels:  svelte, sveltekit

svelte-adapter-deno

Adapter for SvelteKit apps that generates a standalone Deno server.

Usage

Install with npm i -D svelte-adapter-deno, then add the adapter to your svelte.config.js:

// svelte.config.js
import adapter from 'svelte-adapter-deno';

export default {
  kit: {
    adapter: adapter({
      // default options are shown
      out: 'build',
      deps: './deps.ts' // (relative to adapter-deno package)
    })
  }
};

After building the server (npm run build), use the following command to start:

# with the default build directory
deno run --allow-env --allow-read --allow-net build/index.js

# with a custom build directory
deno run --allow-env --allow-read --allow-net path/to/build/index.js

You can use the deployctl GitHub Action to automatically deploy your app in Deno Deploy:

.github/workflows/ci.yml

name: ci

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  deploy:
    name: deploy
    runs-on: ubuntu-latest
    permissions:
      id-token: write
      contents: read

    steps:
      - name: Clone repository
        uses: actions/checkout@v2

      - name: Install Node
        uses: actions/setup-node@v2
        with:
          node-version: 16

      - name: Cache pnpm modules
        uses: actions/cache@v2
        with:
          path: ~/.pnpm-store
          key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-

      - name: Install pnpm and node_modules
        uses: pnpm/action-setup@v2
        with:
          version: latest
          run_install: true

      - name: Build site
        run: pnpm build
        working-directory: '<root>' # if necessary, should contain {out}

      - name: Deploy to Deno Deploy
        uses: denoland/deployctl@v1
        with:
          project: <YOUR PROJECT NAME>
          entrypoint: '{out}/index.js' # same as `out` option in config
          root: '<root>' # if necessary

The server needs at least the following permissions to run:

  • allow-env - allow environment access, to support runtime configuration via runtime variables (can be further restricted to include just the necessary variables)
  • allow-read - allow file system read access (can be further restricted to include just the necessary directories)
  • allow-net - allow network access (can be further restricted to include just the necessary domains)

Additionally, --no-check can be used if deno complains while typechecking upstream dependencies.

Related Deno issues

Options

out

The directory to build the server to. It defaults to build β€” i.e. deno run --allow-env --allow-read --allow-net build/index.js would start the server locally after it has been created.

precompress

Enables precompressing using gzip and brotli for assets and prerendered pages. It defaults to false.

deps

The file re-exporting external runtime dependencies (deps.ts by convention in Deno). It defaults to the deps.ts included in the package.

Environment variables

By default, the server will accept connections on 0.0.0.0 using port 3000. These can be customised with the PORT and HOST environment variables:

HOST=127.0.0.1 PORT=4000 deno run --allow-env --allow-read --allow-net build/server.js

You can specify different environment variables if necessary using the env option.

Advanced Configuration

esbuild

As an escape hatch, you may optionally specify a function which will receive the final esbuild options generated by this adapter and returns a modified esbuild configuration. The result of this function will be passed as-is to esbuild. The function can be async.

For example, you may wish to add a plugin:

adapterDeno({
  esbuild(defaultOptions) {
    return {
      ...defaultOptions,
      plugins: []
    };
  }
});

The default options for this version are as follows:

{
  entryPoints: ['.svelte-kit/deno/index.js'],
  outfile: 'build/index.js',
  bundle: true,
  format: 'esm',
  platform: 'neutral',
  sourcemap: 'external'
}

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].