deno.land / x / manual@v1.28.2 / tools / script_installer.md
Deno provides deno install
to easily install and distribute executable code.
deno install [OPTIONS...] [URL] [SCRIPT_ARGS...]
will install the script
available at URL
under the name EXE_NAME
.
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 --allow-net --allow-read https://deno.land/std@$STD_VERSION/http/file_server.ts
[1/1] Compiling https://deno.land/std@$STD_VERSION/http/file_server.ts
✅ Successfully installed file_server.
/Users/deno/.deno/bin/file_server
To change the executable name, use -n
/--name
:
deno install --allow-net --allow-read -n serve https://deno.land/std@$STD_VERSION/http/file_server.ts
The executable name is inferred by default:
To change the installation root, use --root
:
deno install --allow-net --allow-read --root /usr/local https://deno.land/std@$STD_VERSION/http/file_server.ts
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 --allow-net --allow-read https://deno.land/std@$STD_VERSION/http/file_server.ts -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
You can uninstall the script with deno uninstall
command.
$ deno uninstall file_server
deleted /Users/deno/.deno/bin/file_server
✅ Successfully uninstalled file_server
See deno uninstall -h
for more details.
Version Info