deno.com
本页内容

deno install

命令行用法

deno install [OPTIONS] [cmd]...

在本地项目或全局(到 bin 目录)安装依赖。

本地安装 跳转到标题

将依赖项添加到本地项目的配置(deno.json / package.json)中,并将其安装到包缓存中。如果未指定依赖项,则安装配置文件中列出的所有依赖项。如果传递 --entrypoint 标志,则安装指定入口点的依赖项。

deno install
deno install jsr:@std/bytes
deno install npm:chalk
deno install --entrypoint entry1.ts entry2.ts

全局安装 跳转到标题

如果设置了 --global 标志,则将脚本作为可执行文件安装到安装根目录的 bin 目录中。

deno install --global --allow-net --allow-read jsr:@std/http/file-server
deno install -g https://examples.deno.land/color-logging.ts

要更改可执行文件名,请使用 -n/--name

deno install -g --allow-net --allow-read -n serve jsr:@std/http/file-server

可执行文件名默认为推断

  • 尝试获取 URL 路径的文件名。上述示例将变为 file_server
  • 如果文件名是 mainmodindexcli 等通用名称,并且路径没有父级,则使用父路径的文件名。否则使用通用名称。
  • 如果结果名称带有 @... 后缀,请将其移除。

要更改安装根目录,请使用 --root

deno install -g --allow-net --allow-read --root /usr/local jsr:@std/http/file-server

安装根目录按优先级顺序确定

  • --root 选项
  • DENO_INSTALL_ROOT 环境变量
  • $HOME/.deno

如果需要,这些必须手动添加到路径中。


类型检查选项 跳转到标题

--check 跳转到标题

设置类型检查行为。此子命令默认对本地模块进行类型检查,因此添加 --check 是多余的。如果提供“all”值,将包含远程模块。或者,可以使用 'deno check' 子命令。

--no-check 跳转到标题

跳过类型检查。如果提供“remote”值,将忽略来自远程模块的诊断错误。

依赖管理选项 跳转到标题

--cached-only 跳转到标题

要求远程依赖项已缓存。

--frozen 跳转到标题

如果锁定文件过期,则报错。

--import-map 跳转到标题

从本地文件或远程 URL 加载导入映射文件。

--lock 跳转到标题

检查指定的锁定文件。(如果未提供值,则默认为 "./deno.lock")。

--no-lock 跳转到标题

禁用锁定文件的自动发现。

--no-npm 跳转到标题

不解析 npm 模块。

--no-remote 跳转到标题

不解析远程模块。

--node-modules-dir 跳转到标题

设置 npm 包的 node 模块管理模式。

--reload 跳转到标题

短标记:-r

重新加载源代码缓存(重新编译 TypeScript) 无值 重新加载所有 jsr:@std/http/file-server,jsr:@std/assert/assert-equals 重新加载特定模块 npm: 重新加载所有 npm 模块 npm:chalk 重新加载特定 npm 模块。

--vendor 跳转到标题

切换远程模块的本地供应商文件夹使用和 npm 包的 node_modules 文件夹使用。

选项 跳转到标题

--allow-scripts 跳转到标题

允许为给定包运行 npm 生命周期脚本 注意:脚本只会在使用 node_modules 目录(--node-modules-dir)时执行。

--cert 跳转到标题

从 PEM 编码文件中加载证书颁发机构。

--conditions 跳转到标题

使用此参数为 npm 包导出指定自定义条件。您也可以使用 DENO_CONDITIONS 环境变量。

--config 跳转到标题

短标记:-c

配置 Deno 的各个方面,包括 TypeScript、Linter 和代码格式化。通常配置文件名为 deno.jsondeno.jsonc 并会自动检测;在这种情况下,此标志不是必需的。

--dev 跳转到标题

短标记:-D

将包添加为开发依赖。注意:这仅在添加到 package.json 文件时适用。

--entrypoint 跳转到标题

短标志:-e

安装指定入口点的依赖项。

--env-file 跳转到标题

从本地文件加载环境变量 仅使用给定键的第一个环境变量。现有进程环境变量不会被覆盖,因此如果环境中已存在同名变量,则会保留其值。如果您的 .env 文件中存在同一环境变量的多个声明,则应用第一个遇到的声明。这取决于您作为参数传递的文件的顺序。

--force 跳转到标题

短标志:-f

强制覆盖现有安装。

--global 跳转到标题

短标志:-g

将包或脚本安装为全局可用的可执行文件。

--jsr 跳转到标题

假设无前缀的包名为 JSR 包。

--location 跳转到标题

某些 Web API 使用的 `globalThis.location` 值。

--name 跳转到标题

短标志:-n

可执行文件名。

--no-config 跳转到标题

禁用自动加载配置文件。

--npm 跳转到标题

假设无前缀的包名为 npm 包。

--preload 跳转到标题

在主模块之前执行的文件列表。

--root 跳转到标题

安装根目录。

--seed 跳转到标题

设置随机数生成器种子。

--v8-flags 跳转到标题

要查看所有可用标志的列表,请使用 --v8-flags=--help 标志也可以通过 DENO_V8_FLAGS 环境变量设置。通过此标志设置的任何标志都将附加在 DENO_V8_FLAGS 环境变量之后。

调试选项 跳转到标题

--inspect 跳转到标题

在 `host:port` 上激活检查器 [默认: `127.0.0.1:9229`]

--inspect-brk 跳转到标题

在 host:port 上激活检查器,等待调试器连接并在用户脚本开始时中断。

--inspect-wait 跳转到标题

在 host:port 上激活检查器,并在运行用户代码之前等待调试器连接。

示例 跳转到标题

deno install 跳转到标题

使用此命令安装 deno.json 和/或 package.json 中定义的所有依赖项。

依赖项将安装在全局缓存中,但如果您的项目有 package.json 文件,也会设置一个本地 node_modules 目录。

deno install [包] 跳转到标题

使用此命令安装特定包并将其添加到 deno.jsonpackage.json

$ deno install jsr:@std/testing npm:express

提示

您也可以使用 deno add,它是 deno install [PACKAGES] 的别名

如果您的项目有 package.json 文件,来自 npm 的包将被添加到 package.json 中的 dependencies。否则,所有包都将添加到 deno.json

deno install --entrypoint [文件] 跳转到标题

使用此命令安装所提供文件及其依赖项中使用的所有依赖项。

如果您在代码中使用 jsr:npm:http:https: 说明符,并且希望在部署项目之前缓存所有依赖项,这会特别有用。

main.js
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

提示

如果您想设置本地 node_modules 目录,可以传递 --node-modules-dir=auto 标志。

如果没有本地 node_modules 目录,某些依赖项可能无法正常工作。

deno install --global [包或URL] 跳转到标题

使用此命令将提供的包或脚本作为全局可用的二进制文件安装到您的系统上。

此命令会创建一个精简的可执行 shell 脚本,该脚本使用指定的 CLI 标志和主模块调用 Deno。它放置在安装根目录中。

示例

$ 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

要更改可执行文件名,请使用 -n/--name

deno install -g -N -R -n serve jsr:@std/http/file-server

可执行文件名默认为推断

  • 尝试获取 URL 路径的文件名。上述示例将变为 'file-server'。
  • 如果文件名是 'main'、'mod'、'index' 或 'cli' 等通用名称,并且路径没有父级,则使用父路径的文件名。否则使用通用名称。
  • 如果结果名称带有 '@...' 后缀,请将其移除。

要更改安装根目录,请使用 --root

deno install -g -N -R --root /usr/local/bin jsr:@std/http/file-server

安装根目录按优先级顺序确定

  • --root 选项
  • DENO_INSTALL_ROOT 环境变量
  • $HOME/.deno/bin

如果需要,这些必须手动添加到路径中。

echo 'export PATH="$HOME/.deno/bin:$PATH"' >> ~/.bashrc

您必须指定安装时用于运行脚本的权限。

deno install -g -N -R jsr:@std/http/file-server -- -p 8080

上述命令会创建一个名为 file_server 的可执行文件,该文件以网络和读取权限运行并绑定到端口 8080。

作为最佳实践,请使用 import.meta.main 惯用法来指定可执行脚本的入口点。

示例

// https://example.com/awesome/cli.ts
async function myAwesomeCli(): Promise<void> {
  // -- snip --
}

if (import.meta.main) {
  myAwesomeCli();
}

当您创建可执行脚本时,请务必通过在您的仓库中添加示例安装命令来告知用户

# Install using deno install

$ deno install -n awesome_cli https://example.com/awesome/cli.ts

原生 Node.js 插件 跳转到标题

许多流行的 npm 包,例如 npm:sqlite3npm:duckdb 依赖于 “生命周期脚本”,例如 preinstallpostinstall 脚本。通常,运行这些脚本是包正常工作所必需的。

与 npm 不同,Deno 默认不运行这些脚本,因为它们存在潜在的安全漏洞。

您仍然可以通过在运行 deno install 时传递 --allow-scripts=<packages> 标志来运行这些脚本

deno install --allow-scripts=npm:sqlite3

安装所有依赖项并允许 npm:sqlite3 包运行其生命周期脚本.

--quiet 标志 跳转到标题

--quiet 标志在安装依赖项时抑制诊断输出。当与 deno install 一起使用时,它将隐藏进度指示器、下载信息和成功消息。

$ deno install --quiet jsr:@std/http/file-server

这对于脚本环境或您希望在 CI 流水线中获得更简洁的输出时非常有用。

卸载 跳转到标题

您可以使用 deno uninstall 命令卸载依赖项或二进制脚本

$ deno uninstall express
Removed express
$ deno uninstall -g file-server
deleted /Users/deno/.deno/bin/file-server
✅ Successfully uninstalled file-server

有关更多详细信息,请参阅 deno uninstall 页面

您找到所需内容了吗?

隐私政策