init
deno-init
is a simple command line tool to initialize Deno projects from
prompts.
Quickstart
deno install --allow-read --allow-run=git --allow-write --name deno-init https://deno.land/x/init@v1.5.2/mod.ts
deno-init -y --name awesome_deno_project
Quickerstart (no install)
deno run --allow-read --allow-run=git --allow-write https://raw.githubusercontent.com/GJZwiers/deno-init/v1.5.2/mod.ts -y -n awesome_deno_project
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 deno install
to install the CLI:
deno install --allow-read --allow-run=git --allow-write -n deno-init https://deno.land/x/init@v1.5.2/mod.ts
You can install deno-init
from a GitHub raw URL with a tag as well, or without
one to get the latest and greatest (though also unreleased) version:
deno install --allow-read --allow-run=git --allow-write -n deno-init https://raw.githubusercontent.com/GJZwiers/deno-init/main/mod.ts
To upgrade, run the command with a new version number and include -f
.
Permissions
The program needs the following permissions to run:
read
: to load files that are used to initialize projectsrun=git
: is used to allow the program to rungit
commands, of which onlygit init
is actually called bydeno-init
write
: to make files in order to initialize new projectsunstable
: to allow the use of unstable APIs. Right now these 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 will be added
to the above. If git
is installed on the machine then git init
will be run
as well.
Note that deno-init
will not overwrite files 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 helpful information to the terminal.
--yes
or -y
will initialize the project in the current working directory
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 my_project
.
├── my_project
| ├── .gitignore
| ├── deps.ts
| ├── dev_deps.ts
| ├── mod.ts
the name
argument can be any path in the local filesystem, and deno-init
will make any missing directories along the way.
--map
or -m
will add an (empty) import_map.json
file to the project:
deno-init --map
--config
or -c
will add an (empty) deno.json
file to the project:
deno-init --config
--config-only
or -o
will add only a deno.json
file to the project. Note
that this also disables running git init
:
deno-init --config-only
--tdd
or -t
will include a .test
file to get started with a test-driven
project, such as mod.test.ts
:
deno-init --tdd
--force
or -f
will allow the program to overwrite existing files. This can
be helpful to re-initialize but use with caution.
deno-init --force
--no-git
will disable running git init
as part of the project
initialization.
deno-init --no-git
--ascii
will draw an ASCII Deno to the screen!
deno-init --ascii
Contributing
Feel free to submit a bug report, issue or feature request!