Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tidy up setup environment page a little #674

Closed
wants to merge 3 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
142 changes: 74 additions & 68 deletions runtime/manual/getting_started/setup_your_environment.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,12 @@
title: "Set Up Your Environment"
---

The Deno CLI contains a lot of the tools that are commonly needed for developing
applications, including a full language server to help power your IDE of choice.
[Installing](./installation.md) is all you need to do to make these
[tools](./command_line_interface.md) available to you.
Deno comes with many of the tools that are commonly needed for developing
applications, including a full language server to help power your editor or IDE
of choice. This page will help you set up your environment to get the most out
of Deno while you are developing.

Outside using Deno with your favorite IDE, this section also documents
[shell completions](#shell-completions) and
[environment variables](#environment-variables).

## Using an editor/IDE

There is broad support for Deno in editors/IDEs. The following sections provide
information about how to use Deno with editors. Most editors integrate directly
into Deno using the Language Server Protocol and the language server that is
integrated into the Deno CLI.

If you are trying to write or support a community integration to the Deno
language server, there is some
[documentation](https://github.com/denoland/deno/tree/main/cli/lsp#deno-language-server)
located in the Deno CLI code repository, but also feel free to join the
[Discord community](https://discord.gg/deno) in the `#dev-lsp` channel.
## Setting up your editor/IDE

### Visual Studio Code

Expand Down Expand Up @@ -390,54 +375,75 @@ the fish config folder:
> deno completions fish > ~/.config/fish/completions/deno.fish
```

## Environment variables
## Other tools

If you are trying to write or support a community integration to the Deno
language server, there is some
[documentation](https://github.com/denoland/deno/tree/main/cli/lsp#deno-language-server)
located in the Deno CLI code repository, but also feel free to join the
[Discord community](https://discord.gg/deno) in the `#dev-lsp` channel.

## Environment variables and their impact on Deno behavior

There are several environment variables which can impact the behavior of Deno:

- `DENO_AUTH_TOKENS` - a list of authorization tokens which can be used to allow
Deno to access remote private code. See the
[Private modules and repositories](../advanced/private_repositories.md)
section for more details.
- `DENO_TLS_CA_STORE` - a list of certificate stores which will be used when
establishing TLS connections. The available stores are `mozilla` and `system`.
You can specify one, both or none. Certificate chains attempt to resolve in
the same order in which you specify them. The default value is `mozilla`. The
`mozilla` store will use the bundled Mozilla certs provided by
[`webpki-roots`](https://crates.io/crates/webpki-roots). The `system` store
will use your platform's
[native certificate store](https://crates.io/crates/rustls-native-certs). The
exact set of Mozilla certs will depend on the version of Deno you are using.
If you specify no certificate stores, then no trust will be given to any TLS
connection without also specifying `DENO_CERT` or `--cert` or specifying a
specific certificate per TLS connection.
- `DENO_CERT` - load a certificate authority from a PEM encoded file. This
"overrides" the `--cert` option. See the
[Proxies](../basics/modules/proxies.md) section for more information.
- `DENO_DIR` - this will set the directory where cached information from the CLI
is stored. This includes items like cached remote modules, cached transpiled
modules, language server cache information and persisted data from local
storage. This defaults to the operating system's default cache location and
then under the `deno` path.
- `DENO_INSTALL_ROOT` - When using `deno install` where the installed scripts
are stored. This defaults to `$HOME/.deno/bin`.
- `DENO_NO_PACKAGE_JSON` - Set to disable auto-resolution of package.json files.
- `DENO_NO_PROMPT` - Set to disable permission prompts on access (alternative to
passing `--no-prompt` on invocation).
- `DENO_NO_UPDATE_CHECK` - Set to disable checking if a newer Deno version is
available.
- `DENO_WEBGPU_TRACE` - The directory to use for WebGPU traces.
- `HTTP_PROXY` - The proxy address to use for HTTP requests. See the
[Proxies](../basics/modules/proxies.md) section for more information.
- `HTTPS_PROXY` - The proxy address to use for HTTPS requests. See the
[Proxies](../basics/modules/proxies.md) section for more information.
- `NO_COLOR` - If set, this will prevent the Deno CLI from sending ANSI color
codes when writing to stdout and stderr. See the website
[https://no-color.org](https://no-color.org/) for more information on this _de
facto_ standard. The value of this flag can be accessed at runtime without
permission to read the environment variables by checking the value of
`Deno.noColor`.
- `NO_PROXY` - Indicates hosts which should bypass the proxy set in the other
environment variables. See the [Proxies](../basics/modules/proxies.md) section
for more information.
- `NPM_CONFIG_REGISTRY` - The npm registry to use when loading modules via
[npm specifiers](../node/npm_specifiers.md)
`DENO_AUTH_TOKENS` - a list of authorization tokens which can be used to allow
Deno to access remote private code. See the
[Private modules and repositories](../advanced/private_repositories.md) section
for more details.

`DENO_TLS_CA_STORE` - a list of certificate stores which will be used when
establishing TLS connections. The available stores are `mozilla` and `system`.
You can specify one, both or none. Certificate chains attempt to resolve in the
same order in which you specify them. The default value is `mozilla`. The
`mozilla` store will use the bundled Mozilla certs provided by
[`webpki-roots`](https://crates.io/crates/webpki-roots). The `system` store will
use your platform's
[native certificate store](https://crates.io/crates/rustls-native-certs). The
exact set of Mozilla certs will depend on the version of Deno you are using. If
you specify no certificate stores, then no trust will be given to any TLS
connection without also specifying `DENO_CERT` or `--cert` or specifying a
specific certificate per TLS connection.

`DENO_CERT` - load a certificate authority from a PEM encoded file. This
"overrides" the `--cert` option. See the [Proxies](../basics/modules/proxies.md)
section for more information.

`DENO_DIR` - this will set the directory where cached information from the CLI
is stored. This includes items like cached remote modules, cached transpiled
modules, language server cache information and persisted data from local
storage. This defaults to the operating system's default cache location and then
under the `deno` path.

`DENO_INSTALL_ROOT` - When using `deno install` where the installed scripts are
stored. This defaults to `$HOME/.deno/bin`.

`DENO_NO_PACKAGE_JSON` - Set to disable auto-resolution of package.json files.

`DENO_NO_PROMPT` - Set to disable permission prompts on access (alternative to
passing `--no-prompt` on invocation).

`DENO_NO_UPDATE_CHECK` - Set to disable checking if a newer Deno version is
available.

`DENO_WEBGPU_TRACE` - The directory to use for WebGPU traces.

`HTTP_PROXY` - The proxy address to use for HTTP requests. See the
[Proxies](../basics/modules/proxies.md) section for more information.

`HTTPS_PROXY` - The proxy address to use for HTTPS requests. See the
[Proxies](../basics/modules/proxies.md) section for more information.

`NO_COLOR` - If set, this will prevent the Deno CLI from sending ANSI color
codes when writing to stdout and stderr. See the website
[https://no-color.org](https://no-color.org/) for more information on this _de
facto_ standard. The value of this flag can be accessed at runtime without
permission to read the environment variables by checking the value of
`Deno.noColor`.

`NO_PROXY` - Indicates hosts which should bypass the proxy set in the other
environment variables. See the [Proxies](../basics/modules/proxies.md) section
for more information.

`NPM_CONFIG_REGISTRY` - The npm registry to use when loading modules via
[npm specifiers](../node/npm_specifiers.md)