Remix + Deno
Welcome to the Deno template for Remix! ๐ฆ
For more, check out the Remix docs.
Install
npx create-remix@latest --template deno
Managing dependencies
Read about how we recommend to manage dependencies for Remix projects using Deno.
- โ
You should use
npm
to install NPM packagesnpm install react
import { useState } from "react";
- โ
You may use inlined URL imports or
deps.ts
for Deno modules.
import { copy } from "https://deno.land/[email protected]/streams/conversion.ts";
- โ Do not use import maps.
Development
From your terminal:
npm run dev
This starts your app in development mode, rebuilding assets on file changes.
Type hints
This template provides type hinting to VS Code via a dedicated import map.
To get types in another editor, use an extension for Deno that supports import
maps and point your editor to ./.vscode/resolve_npm_imports.json
.
For more, see our decision doc for interop between Deno and NPM.
Production
First, build your app for production:
npm run build
Then run the app in production mode:
npm start
Deployment
Building the Deno app (npm run build
) results in two outputs:
build/
(server bundle)public/build/
(browser bundle)
You can deploy these bundles to any host that runs Deno, but here we'll focus on deploying to Deno Deploy.
Setting up Deno Deploy
-
Sign up for Deno Deploy.
-
Create a new Deno Deploy project for this app.
-
Replace
<your deno deploy project>
in thedeploy
script inpackage.json
with your Deno Deploy project name:
{
"scripts": {
"deploy": "deployctl deploy --project=<your deno deploy project> --include=.cache,build,public ./build/index.js"
}
}
- Create a personal access token for the Deno
Deploy API and export it as
DENO_DEPLOY_TOKEN
:
export DENO_DEPLOY_TOKEN=<your Deno Deploy API token>
You may want to add this to your rc
file (e.g. .bashrc
or .zshrc
) to make
it available for new terminal sessions, but make sure you don't commit this
token into git
. If you want to use this token in GitHub Actions, set it as a
GitHub secret.
- Install the Deno Deploy CLI,
deployctl
:
deno install --allow-read --allow-write --allow-env --allow-net --allow-run --no-check -r -f https://deno.land/x/deploy/deployctl.ts
- If you have previously installed the Deno Deploy CLI, you should update it to the latest version:
deployctl upgrade
Deploying to Deno Deploy
After you've set up Deno Deploy, run:
npm run deploy