Skip to content
Open
Show file tree
Hide file tree
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
4 changes: 2 additions & 2 deletions examples/tutorials/npm_lifecycle_scripts.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
last_modified: 2026-06-11
last_modified: 2026-10-10
title: "Run npm lifecycle scripts"
description: "Allow npm postinstall and other lifecycle scripts in Deno with deno approve-scripts, and persist approvals with the allowScripts field in deno.json."
url: /examples/npm_lifecycle_scripts_tutorial/
Expand Down Expand Up @@ -76,5 +76,5 @@ security policy is consistent across all packages.
For more detail, see the
[`deno approve-scripts` reference](/runtime/reference/cli/approve_scripts/) and
the
[native Node.js addons section](/runtime/reference/cli/install/#native-nodejs-addons)
[native Node.js addons section](/runtime/reference/cli/install/#native-node.js-addons)
of the `deno install` docs.
4 changes: 2 additions & 2 deletions runtime/fundamentals/modules.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
last_modified: 2026-06-30
last_modified: 2026-10-10
title: "Modules"
description: "Learn how Deno's ECMAScript module system works: importing local and third-party modules, import attributes, import maps, and supported import types such as Wasm and data URLs."
oldUrl:
Expand Down Expand Up @@ -326,7 +326,7 @@ party modules. There, you'll find plenty of well documented ES modules for your
projects, including the [Deno Standard Library](/runtime/reference/std/).

You can
[read more about Deno's support for npm packages here](/runtime/fundamentals/node/#using-npm-modules).
[read more about Deno's support for npm packages here](/runtime/fundamentals/node/#using-npm-packages).

## Managing third party modules and libraries

Expand Down
6 changes: 3 additions & 3 deletions runtime/fundamentals/node.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
last_modified: 2026-07-30
last_modified: 2026-10-10
title: "Node and npm Compatibility"
description: "Guide to using Node.js modules and npm packages in Deno. Learn about compatibility features, importing npm packages, and differences between Node.js and Deno environments."
oldUrl:
Expand Down Expand Up @@ -820,8 +820,8 @@ resolution, you can:
tooling for packages to support both ESM and CJS, since default exports
require different syntaxes. See also
[microsoft/TypeScript#54593](https://github.com/microsoft/TypeScript/issues/54593))
2. Use a [CDN](/runtime/fundamentals/modules/#url_imports), that rebuilds the
packages for Deno support, instead of an `npm:` identifier.
2. Use a [CDN](/runtime/packages/#https-imports), that rebuilds the packages for
Deno support, instead of an `npm:` identifier.
3. Ignore the type errors you get in your code base with `// @ts-expect-error`
or `// @ts-ignore`.

Expand Down
11 changes: 6 additions & 5 deletions runtime/fundamentals/security.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
last_modified: 2026-06-17
last_modified: 2026-10-12
title: "Security and permissions"
description: "A guide to Deno's security model: secure-by-default execution, the permission sandbox, evaluating and executing untrusted code, and the permission broker. See the Permissions reference for the flags."
---
Expand Down Expand Up @@ -151,10 +151,11 @@ code you are running.

A program can inspect and tighten its own permissions through the
[`Deno.permissions`](/api/deno/#permissions) API.
[`Deno.permissions.query`](/api/deno/#query-permissions) reports whether a
permission is granted,
[`Deno.permissions.request`](/api/deno/#request-permissions) prompts for one on
demand, and [`Deno.permissions.revoke`](/api/deno/#revoke-permissions)
[`Deno.permissions.query`](/api/deno/~/Deno.Permissions.prototype.query) reports
whether a permission is granted,
[`Deno.permissions.request`](/api/deno/~/Deno.Permissions.prototype.request)
prompts for one on demand, and
[`Deno.permissions.revoke`](/api/deno/~/Deno.Permissions.prototype.revoke)
downgrades a granted permission back to the prompt state:

```ts
Expand Down
22 changes: 11 additions & 11 deletions runtime/fundamentals/typescript.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
last_modified: 2026-06-18
last_modified: 2026-10-10
title: "TypeScript support"
description: "TypeScript is a first-class language in Deno. Run .ts files directly with no build step, type-check with deno check, reuse your tsconfig.json, and skip the toolchain you needed under Node.js."
oldUrl:
Expand Down Expand Up @@ -65,14 +65,14 @@ running Node or a bundler), reach for a separate tool:
If you write TypeScript for Node.js today, most of your toolchain has a built-in
replacement:

| In your Node.js project | In Deno |
| ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| `tsx`, `ts-node`, or `node` with type stripping | `deno run main.ts` |
| `tsc --noEmit` | `deno check` |
| `tsconfig.json` | Optional. Auto-detected if present; Deno-first projects use `compilerOptions` in `deno.json` |
| `typescript` as a devDependency | Nothing to install; the checker ships inside the `deno` binary |
| `@types/node` | Built in and [version-overridable](/runtime/fundamentals/node/#including-node-types); `node:` imports are typed |
| ESLint + Prettier with TypeScript plugins | [`deno lint`](/runtime/reference/cli/lint/) and [`deno fmt`](/runtime/reference/cli/fmt/) handle `.ts` natively |
| In your Node.js project | In Deno |
| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `tsx`, `ts-node`, or `node` with type stripping | `deno run main.ts` |
| `tsc --noEmit` | `deno check` |
| `tsconfig.json` | Optional. Auto-detected if present; Deno-first projects use `compilerOptions` in `deno.json` |
| `typescript` as a devDependency | Nothing to install; the checker ships inside the `deno` binary |
| `@types/node` | Built in and [version-overridable](/runtime/fundamentals/node/#get-node-and-npm-type-definitions); `node:` imports are typed |
| ESLint + Prettier with TypeScript plugins | [`deno lint`](/runtime/reference/cli/lint/) and [`deno fmt`](/runtime/reference/cli/fmt/) handle `.ts` natively |

Three differences trip up Node.js developers most often:

Expand All @@ -95,7 +95,7 @@ Node 24. Deno runs all of them with no flag.
Options like `target`, `module`, `outDir`, `esModuleInterop`, and `sourceMap`
shape emitted JavaScript, which Deno keeps in its internal cache rather than
writing to disk. Deno warns about these ignored options, and the
[migration table](/runtime/reference/ts_config_migration/#migrating-compileroptions-from-nodejs)
[migration table](/runtime/reference/ts_config_migration/#migrating-compileroptions-from-node.js)
in the configuration reference says what to do with each one. For most, the
answer is "delete it".

Expand Down Expand Up @@ -410,7 +410,7 @@ This adds browser globals like `document` while keeping the `Deno` namespace
available through `deno.ns`. Use `lib: ["deno.worker"]` (or a
`/// <reference lib="deno.worker" />` directive) for code that runs in a
`new Worker`. The
[lib property reference](/runtime/reference/ts_config_migration/#using-the-lib-property)
[lib property reference](/runtime/reference/ts_config_migration/#using-the-%22lib%22-property)
describes the available libraries, conflicts to expect, and worker-specific
setup.

Expand Down
4 changes: 2 additions & 2 deletions runtime/migrate/migrate_from_npm.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Migrate from npm"
description: "How to move an npm project to Deno: install dependencies from your existing package.json, keep your pinned versions, map npm CLI commands to Deno, run workspaces unchanged, and handle lifecycle scripts."
last_modified: 2026-06-25
last_modified: 2026-10-10
oldUrl:
- /runtime/migrate/switch_package_manager/
---
Expand Down Expand Up @@ -100,7 +100,7 @@ that field directly. A monorepo like this runs as-is:
```

Members reference each other through the
[`workspace:` protocol](/runtime/fundamentals/workspaces/#using-workspace-protocol-in-package-json)
[`workspace:` protocol](/runtime/fundamentals/workspaces/#using-workspace-protocol-in-package.json)
in their `package.json` dependencies, exactly as they do under npm. There is
nothing to convert. See [Workspaces](/runtime/fundamentals/workspaces/) for how
resolution works.
Expand Down
4 changes: 2 additions & 2 deletions runtime/migrate/migrate_from_yarn.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Migrate from Yarn"
description: "How to move a Yarn project to Deno: install dependencies from your existing package.json, keep your pinned versions, map Yarn CLI commands to Deno, run workspaces unchanged, and what to do about Plug'n'Play."
last_modified: 2026-06-25
last_modified: 2026-10-10
---

Yarn is a package manager, not a runtime, so most of what you are "migrating" is
Expand Down Expand Up @@ -94,7 +94,7 @@ that field directly. A monorepo like this runs as-is:
```

Members reference each other through the
[`workspace:` protocol](/runtime/fundamentals/workspaces/#using-workspace-protocol-in-package-json)
[`workspace:` protocol](/runtime/fundamentals/workspaces/#using-workspace-protocol-in-package.json)
in their `package.json` dependencies, exactly as they do under Yarn. There is
nothing to convert. See [Workspaces](/runtime/fundamentals/workspaces/) for how
resolution works.
Expand Down
4 changes: 2 additions & 2 deletions runtime/packages/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
last_modified: 2026-06-25
last_modified: 2026-10-10
title: "Dependency management"
description: "Use Deno as your package manager for npm and JSR: install, add, update, audit, and inspect dependencies, manage lockfiles and lifecycle scripts, and override packages."
oldUrl:
Expand Down Expand Up @@ -383,7 +383,7 @@ When using a `package.json` file, dev dependencies can be added to the separate
If you work primarily in `package.json`, set `"preferPackageJson": true` in
`deno.json` so that `deno add`, `deno install`, and `deno remove` write there by
default instead of `deno.json`, without passing `--package-json` each time. See
[preferPackageJson](/runtime/reference/deno_json/#prefer-package-json-for-dependencies).
[preferPackageJson](/runtime/reference/deno_json/#prefer-package.json-for-dependencies).

### JSR packages in package.json

Expand Down
11 changes: 6 additions & 5 deletions runtime/packages/peer_dependencies.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
last_modified: 2026-06-15
last_modified: 2026-10-10
title: "Peer dependencies"
description: "Peer dependencies are an npm and package.json feature. deno.json has no peerDependencies field or equivalent. How Deno resolves peer dependencies when you consume npm packages, the node_modules layout caveat, optional peers, and fixing unmet-peer errors."
---
Expand Down Expand Up @@ -64,7 +64,8 @@ in `dependencies`, exactly as you would in Node.
## node_modules layout and peer dependencies

How peer dependencies resolve depends on the
[node_modules layout](/runtime/fundamentals/node/#node_modules) Deno uses.
[node_modules layout](/runtime/fundamentals/node/#control-node_modules) Deno
uses.

In the default **isolated** layout, each package only sees the dependencies it
declares, so a peer dependency must be provided by your project (as shown above)
Expand Down Expand Up @@ -117,7 +118,7 @@ deno install

If the package instead expects to find the peer dependency as a hoisted sibling
in `node_modules`, see
[node_modules layout](/runtime/fundamentals/node/#node_modules) and switch to
the hoisted linker as shown above. For more on how Deno works with npm packages
and `node_modules`, see
[node_modules layout](/runtime/fundamentals/node/#control-node_modules) and
switch to the hoisted linker as shown above. For more on how Deno works with npm
packages and `node_modules`, see
[Node compatibility](/runtime/fundamentals/node/#using-npm-packages).
6 changes: 3 additions & 3 deletions runtime/reference/cli/add.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
last_modified: 2026-06-25
last_modified: 2026-10-10
title: "deno add"
command: add
openGraphLayout: "/open_graph/cli-commands.jsx"
Expand All @@ -9,7 +9,7 @@ description: "Add and manage project dependencies with Deno"

The `deno add` command adds dependencies to your project's configuration file.
It is an alias for
[`deno install [PACKAGES]`](/runtime/reference/cli/install/#deno-install-packages).
[`deno install [PACKAGES]`](/runtime/reference/cli/install/#deno-install-%5Bpackages%5D).
For more on how Deno handles dependencies, see
[Modules and dependencies](/runtime/fundamentals/modules/).

Expand Down Expand Up @@ -61,5 +61,5 @@ form (`npm:@jsr/...`). The same flag works on
[`deno uninstall`](/runtime/reference/cli/uninstall/).

To make this the default without passing the flag each time, set
[`"preferPackageJson": true`](/runtime/reference/deno_json/#prefer-package-json-for-dependencies)
[`"preferPackageJson": true`](/runtime/reference/deno_json/#prefer-package.json-for-dependencies)
in `deno.json`.
4 changes: 2 additions & 2 deletions runtime/reference/cli/install.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
last_modified: 2026-07-02
last_modified: 2026-10-10
title: "deno install"
oldUrl:
- /runtime/manual/tools/script_installer/
Expand Down Expand Up @@ -96,7 +96,7 @@ form (`npm:@jsr/...`). The same flag works on `deno add`, `deno remove`, and
`deno uninstall`.

To make this behavior the default without passing the flag every time, set
[`"preferPackageJson": true`](/runtime/reference/deno_json/#prefer-package-json-for-dependencies)
[`"preferPackageJson": true`](/runtime/reference/deno_json/#prefer-package.json-for-dependencies)
in `deno.json`.

### deno install --entrypoint [FILES]
Expand Down
4 changes: 2 additions & 2 deletions runtime/reference/cli/unstable_flags.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
last_modified: 2026-07-02
last_modified: 2026-10-10
title: "Unstable feature flags"
oldUrl:
- /runtime/tools/unstable_flags/
Expand Down Expand Up @@ -294,5 +294,5 @@ deno check --unstable-tsgo main.ts
It can also be enabled with the `DENO_UNSTABLE_TSGO=1` environment variable or
`"unstable": ["tsgo"]` in `deno.json`. This is a preview feature and is not yet
feature-complete. See
[TypeScript](/runtime/fundamentals/typescript/#faster-type-checking-with-the-native-compiler-tsgo)
[TypeScript](/runtime/fundamentals/typescript/#faster-type-checking-with-the-native-compiler-(tsgo))
for details.
4 changes: 2 additions & 2 deletions runtime/reference/env_variables.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
last_modified: 2026-07-02
last_modified: 2026-10-10
title: "Environment variables"
description: "A guide to working with environment variables in Deno. Learn about Deno.env API, .env file support, CLI configuration, and special environment variables that control Deno's behavior."
oldUrl:
Expand Down Expand Up @@ -145,7 +145,7 @@ The Deno runtime has these special environment variables.
| DENO_REPL_HISTORY | Set REPL history file path History file is disabled when the value is empty <br />(defaults to `$DENO_DIR/deno_history.txt`) |
| DENO_NO_PACKAGE_JSON | Disables auto-resolution of `package.json` |
| DENO_CONDITIONS | Comma-separated list of custom conditions to use when resolving npm package exports (equivalent to the `--conditions` flag) |
| DENO_UNSTABLE_TSGO | Set to `1` to type-check with TypeScript's native (Go) compiler. Equivalent to the `--unstable-tsgo` flag. See [TypeScript](/runtime/fundamentals/typescript/#faster-type-checking-with-the-native-compiler-tsgo). |
| DENO_UNSTABLE_TSGO | Set to `1` to type-check with TypeScript's native (Go) compiler. Equivalent to the `--unstable-tsgo` flag. See [TypeScript](/runtime/fundamentals/typescript/#faster-type-checking-with-the-native-compiler-(tsgo)). |
| DENO_NO_PROMPT | Set to disable permission prompts on access<br />(alternative to passing `--no-prompt` on invocation) |
| DENO_NO_UPDATE_CHECK | Set to disable checking if a newer Deno version is available |
| DENO_V8_FLAGS | Set V8 command line options |
Expand Down
Loading
Loading