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!
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
# Enable Deno and override default settings
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
- And more to come!
Work in progress
Deno support is currently experimental while we finalize the implementation.
The following features are not supported:
npm:imports do not consider Node.js dependencies as hash sources.
files.excludeare currently considered an input. These will be filtered in a future release.
The handbook is currently being written while we finalize our Deno integration support!