init
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.1/mod.ts
nest.land
deno install --allow-read --allow-run --allow-write --unstable -n deno-init https://x.nest.land/init@0.13.1/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 templatesrun
: to rungit init
if the git option is truewrite
: to make files in order to initialize new projectsunstable
: 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