On this page
deno install
deno install
is a tool that allows you to install remote dependencies to use
in your project or as executables available on your machine.
There are four ways to use deno install
:
deno install
- install all dependencies specified indeno.json
andpackage.json
deno install [PACKAGES]
- install and add specified dependencies todeno.json
orpackage.json
deno install --entrypoint [FILES]
- install all remote dependencies discovered from the provided filesdeno install --global [PACKAGE_OR_URL]
- install a dependency as an executable program on your machine
deno install
works in similar manner to other package managers like npm
,
yarn
, pnpm
or bun
.
deno install Jump to heading
Use this command to install all dependencies defined in deno.json
and/or
package.json
.
The dependencies will be installed in the global cache, but if your project has
a package.json
file, a local node_modules
directory will be set up as well.
deno install [PACKAGES] Jump to heading
Use this command to install particular packages and add them to deno.json
or
package.json
.
$ deno install jsr:@std/testing npm:express
You can also use deno add
which is an alias to deno install [PACKAGES]
If your project has a package.json
file, the packages coming from npm will be
added to dependencies
in package.json
. Otherwise all packages will be added
to deno.json
.
deno install --entrypoint [FILES] Jump to heading
Use this command to install all depenedencies that are used in the provided files and their dependencies.
This is particularly useful if you use jsr:
, npm:
, http:
or https:
specifiers in your code and want to cache all the dependencies before deploying
your project.
import * as colors from "jsr:@std/fmt/colors";
import express from "npm:express";
$ deno install -e main.js
Download jsr:@std/fmt
Download npm:express
If you want to set up local node_modules
directory, you can pass
--node-modules-dir=auto
flag.
Some dependencies might not work correctly without a local node_modules
directory.
deno install --global [PACKAGE_OR_URL] Jump to heading
Use this command to install provide package or script as a globally available binary on your system.
This command creates a thin, executable shell script which invokes deno
using
the specified CLI flags and main module. It is placed in the installation root's
bin
directory.
Example:
$ deno install --global --allow-net --allow-read jsr:@std/http/file-server
Download jsr:@std/http/file-server...
✅ Successfully installed file-server.
/Users/deno/.deno/bin/file-server
To change the executable name, use -n
/--name
:
deno install -g -N -R -n serve jsr:@std/http/file-server
The executable name is inferred by default:
- Attempt to take the file stem of the URL path. The above example would become 'file-server'.
- If the file stem is something generic like 'main', 'mod', 'index' or 'cli', and the path has no parent, take the file name of the parent path. Otherwise settle with the generic name.
- If the resulting name has an '@...' suffix, strip it.
To change the installation root, use --root
:
deno install -g -N -R --root /usr/local jsr:@std/http/file-server
The installation root is determined, in order of precedence:
--root
optionDENO_INSTALL_ROOT
environment variable$HOME/.deno
These must be added to the path manually if required.
echo 'export PATH="$HOME/.deno/bin:$PATH"' >> ~/.bashrc
You must specify permissions that will be used to run the script at installation time.
deno install -g -N -R jsr:@std/http/file-server -- -p 8080
The above command creates an executable called file_server
that runs with
network and read permissions and binds to port 8080.
For good practice, use the
import.meta.main
idiom to specify the
entry point in an executable script.
Example:
// https://example.com/awesome/cli.ts
async function myAwesomeCli(): Promise<void> {
// -- snip --
}
if (import.meta.main) {
myAwesomeCli();
}
When you create an executable script make sure to let users know by adding an example installation command to your repository:
# Install using deno install
$ deno install -n awesome_cli https://example.com/awesome/cli.ts
Uninstall Jump to heading
You can uninstall dependencies or binary script with deno uninstall
command:
$ deno uninstall express
Removed express
$ deno uninstall -g file-server
deleted /Users/deno/.deno/bin/file-server
✅ Successfully uninstalled file-server