Deno handbook
Utilizing Deno in a TypeScript based monorepo can be a non-trivial task. With this handbook, we'll help guide you through this process.
This guide is a living document and will continue to be updated over time!
moon setup
For this part of the handbook, we'll be focusing on moon, our task runner. To start, languages in moon act like plugins, where their functionality and support is not enabled unless explicitly configured. We follow this approach to avoid unnecessary overhead.
Enabling the language
To enable TypeScript support via Deno, define the deno
setting in
.moon/toolchain.yml
, even if an empty object.
# Enable Deno
deno: {}
# Enable Deno and override default settings
deno:
lockfile: true
Or by pinning a deno
version in .prototools
in the workspace root.
deno = "1.31.0"
This will enable the Deno platform and provide the following automations around its ecosystem:
- Automatic handling and caching of lockfiles (when the setting is enabled).
- Relationships between projects will automatically be discovered based on
imports
,importMap
, anddeps.ts
(currently experimental). - And more to come!
Work in progress
Deno support is currently experimental while we finalize the implementation.
The following features are not supported:
deno.jsonc
files (usedeno.json
instead).npm:
imports do not consider Node.js dependencies as hash sources.files.exclude
are currently considered an input. These will be filtered in a future release.
Coming soon!
The handbook is currently being written while we finalize our Deno integration support!