Skip to main content
Deno 2 is finally here šŸŽ‰ļø
Learn more

init

Build Coverage Status Deno nest badge

deno-init is a simple command line tool to initialize new Deno projects from templates or through prompts.

Please note this moduleā€™s API is not stable yet and there may be breaking changes on 0.x version increments.

Table of Contents

Installation

First install deno and make sure it is available on a terminal. git is also recommended though not required.

Next, run the deno install command below to install the executable:

deno.land

deno install --allow-read --allow-run --allow-write --unstable -n deno-init https://deno.land/x/init@0.15.0/mod.ts

nest.land

deno install --allow-read --allow-run --allow-write --unstable -n deno-init https://x.nest.land/init@0.15.0/mod.ts

github

deno install --allow-read --allow-run --allow-write --unstable -n deno-init https://raw.githubusercontent.com/GJZwiers/deno-init/main/mod.ts

If you already have a previous installation and would like to upgrade, run the command with the new version number and include the -f flag.

Permissions

The program needs the following permissions to run:

  • read: to load files that are used to initialize projects from templates
  • run: to run git init if the git option is true
  • write: to make files in order to initialize new projects
  • unstable: to allow the use of unstable APIs. These mostly come from the moduleā€™s external dependencies.

Basic Usage

deno-init

This will prompt you for the following:

  • Use TypeScript? (default y)
  • Set entrypoint: (default mod.ts)
  • Set dependency entrypoint: (default deps.ts)
  • Set dev dependency entrypoint: (default dev_deps.ts)
  • Add import map? (default n)

Choosing all defaults will create the following structure in the current directory:

.
ā”‚   .gitignore
ā”‚   deps.ts
|   dev_deps.ts
ā”‚   mod.ts

If you choose to init with an import map an import_map.json file is added to the above. If git is installed on the machine then git init is run as well.

Note that deno-init will not overwrite files or directories unless the --force option is used explicitly. This means the program can ā€˜fill in the blanksā€™ in a project where not all of the files above are present yet.

Options

--help will print all available options to the terminal.

--yes or -y will initialize the project with all the defaults, skipping the prompts:

deno-init --yes

--name or -n will initialize the project in a new directory in the current working directory:

deno-init --name awesome_deno_project

--import-map or -m will add an (empty) import_map.json file to the project:

deno-init --import-map

--cache or -c will run deno cache on any dependencies in for example deps.ts after all of the projectā€™s files have been made:

deno-init --cache

--force or -f will allow the progam to overwrite existing files. This can be helpful to re-initialize but use with caution.

deno-init --force

--no-git disables running git init as part of the project initialization.

deno-init --no-git

Subcommands

Use --help with any of the subcommands to get more detailed information.

The deno-init subcommands will create a new project from a chosen template, which can be specified with --template or -t. If --template is omitted you will be prompted to choose one from a list of available choices.

api

Use to initialize a Deno RESTful API from a template.

deno-init api --template opine

Available templates: opine, restful_oak.

cli

Use to initialize a Deno Command Line Interface (CLI) from a template.

deno-init cli --template cliffy

Available templates: cliffy.

server

Use to initialize a Deno HTTP server from a template.

deno-init server --template oak

Available templates: deno_http, drash, oak.

tdd

Use to initialize a Deno Test-Driven Development project from a template.

deno-init tdd --template rhum

Available templates: deno, rhum.

Contributing

TBD