init

Build Coverage Status Deno nest badge

Start Deno projects faster with deno-init, a simple executable that scaffolds the project structure for you.

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

Requirements

  • deno installed and available on a terminal.

Installation

Use deno install to install the executable. It is recommended to specify a version number in the URL, if no version is passed the latest will be installed.

To upgrade an existing installation include -f.

deno.land

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

nest.land

deno install --allow-read --allow-run --allow-write --unstable -n deno-init https://x.nest.land/init@0.13.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

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 originate in the module’s dependencies.

Basic Usage

deno-init

This will prompt you for the following:

  • TypeScript? (default y)
  • Entrypoint? (default mod.ts)
  • Dependency entrypoint? (default deps.ts)
  • Debug configuration? (default n).

Choosing all defaults will create the following structure in the current directory and run git init:

.
│   .gitignore
│   deps.ts  
│   mod.ts
│
└───.vscode
│   │   launch.json
│   │   settings.json

.gitignore will ignore .vscode/ and settings.json will contain "deno.enable": "true". If debug is answered with y/Y a launch.json will be made with a basic debug configuration.

Available Options

Use --help to print all available options. In addition, they are listed below:

Use --yes or -y if you simply want to use all the default values without being prompted:

deno-init -y

deno-init will not overwrite files or directories unless --force is passed.

Use --editor or -e to generate editor-specific configuration for a project. At this moment only the option vscode is supported and it is also set as the default.

deno-init --editor vscode

Use --force or -f in case you explicitly want to overwrite existing files. This can be helpful to re-initialize but use with caution.

deno-init -f

Use --name or -n to make a new directory in the current directory where the files will be placed.

deno-init --name my_deno_project

Use --no-git if you don’t want to run git init as part of initializing the project.

deno-init --no-git

Subcommands

Use --help to get more detailed information on any of the subcommands. The --template or -t option can be used with any subcommand in addition to the other options to select a project template. If no template is passed the program will prompt you with a list of 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.

Roadmap

  • Support more editor/IDE setups
  • Add more project templates