在当前页面
deno install
命令行用法
o install [选项] [cmd]...
安装依赖项到本地项目或全局安装到 bin 目录。
本地安装 Jump to heading
将依赖项添加到本地项目的配置中(deno.json / package.json
)并将它们安装到包缓存中。如果未指定依赖项,则安装配置文件中列出的所有依赖项。如果传递了 --entrypoint
标志,则安装指定入口点的依赖项。
deno install
deno install jsr:@std/bytes
deno install npm:chalk
deno install --entrypoint entry1.ts entry2.ts
全局安装 Jump to heading
如果设置了 --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
。 - 如果文件名是
main
、mod
、index
或cli
等通用名称,并且路径没有父路径,则获取父路径的文件名。否则使用通用名称。 - 如果生成的名称带有
@...
后缀,则去除它。
要更改安装根目录,请使用
--root
:
deno install -g --allow-net --allow-read --root /usr/local jsr:@std/http/file-server
安装根目录按以下优先级确定:
--root
选项DENO_INSTALL_ROOT
环境变量$HOME/.deno
如果需要,必须手动将这些添加到路径中。
不稳定选项 Jump to heading
--unstable
Jump to heading
--unstable
标志已被弃用。请改用细粒度的 --unstable-*
标志.
--unstable-bare-node-builtins
Jump to heading
启用不稳定的裸 Node 内置功能.
--unstable-broadcast-channel
Jump to heading
启用不稳定的 BroadcastChannel
API.
--unstable-cron
Jump to heading
启用不稳定的 Deno.cron API.
--unstable-detect-cjs
Jump to heading
在更多情况下将模棱两可的 .js、.jsx、.ts、.tsx 文件视为 CommonJS 模块.
--unstable-kv
Jump to heading
启用不稳定的键值存储 API.
--unstable-net
Jump to heading
启用不稳定的网络 API.
--unstable-node-globals
Jump to heading
在所有地方暴露 Node 全局变量.
--unstable-sloppy-imports
Jump to heading
启用不稳定的通过扩展探测、.js 到 .ts 以及目录探测来解析模块的功能.
--unstable-temporal
Jump to heading
启用不稳定的 Temporal API.
--unstable-unsafe-proto
Jump to heading
启用不安全的 proto 支持。这是一个安全风险。.
--unstable-webgpu
Jump to heading
启用不稳定的 WebGPU
API.
--unstable-worker-options
Jump to heading
启用不稳定的 Web Worker API.
类型检查选项 Jump to heading
--check
Jump to heading
设置类型检查行为。此子命令默认会检查本地模块,因此添加 --check
是多余的
如果提供了 "all" 值,则包括远程模块。
或者,可以使用 'deno check' 子命令.
--no-check
Jump to heading
跳过类型检查。如果提供了 "remote" 值,则忽略远程模块的诊断错误.
依赖管理选项 Jump to heading
--cached-only
Jump to heading
要求远程依赖项已缓存.
--frozen
Jump to heading
如果锁文件过期则报错.
--import-map
Jump to heading
从本地文件或远程 URL 加载导入映射文件 文档:https://docs.deno.com/runtime/manual/basics/import_maps.
--lock
Jump to heading
检查指定的锁文件。(如果未提供值,则默认为 "./deno.lock").
--no-lock
Jump to heading
禁用自动发现锁文件.
--no-npm
Jump to heading
不解析 npm 模块.
--no-remote
Jump to heading
不解析远程模块.
--node-modules-dir
Jump to heading
设置 npm 包的 node 模块管理模式.
--reload
Jump to heading
Short flag: -r
重新加载源代码缓存(重新编译 TypeScript) 无值 重新加载所有内容 jsr:@std/http/file-server,jsr:@std/assert/assert-equals 重新加载特定模块 npm: 重新加载所有 npm 模块 npm:chalk 重新加载特定 npm 模块.
--vendor
Jump to heading
切换远程模块的本地 vendor 文件夹和 npm 包的 node_modules 文件夹的使用.
Options Jump to heading
--allow-scripts
Jump to heading
允许运行给定包的 npm 生命周期脚本
注意:只有在使用 node_modules 目录时才会执行脚本(--node-modules-dir
).
--cert
Jump to heading
从 PEM 编码文件加载证书颁发机构.
--config
Jump to heading
Short flag: -c
配置 deno 的不同方面,包括 TypeScript、代码检查和代码格式化
通常配置文件将被称为 deno.json
或 deno.jsonc
并自动检测;在这种情况下,此标志不是必需的。
文档:https://docs.deno.com/go/config.
--dev
Jump to heading
Short flag: -D
添加为开发依赖项.
--entrypoint
Jump to heading
Short flag: -e
安装指定入口点的依赖项.
--env-file
Jump to heading
从本地文件加载环境变量 仅使用第一个具有给定键的环境变量。 现有的进程环境变量不会被覆盖,因此如果环境中已经存在具有相同名称的变量,则保留它们的值。 如果 .env 文件中有多个相同环境变量的声明,则应用第一个遇到的声明。这由您作为参数传递的文件的顺序决定。.
--force
Jump to heading
Short flag: -f
强制覆盖现有安装.
--global
Jump to heading
Short flag: -g
将包或脚本安装为全局可用的可执行文件.
--location
Jump to heading
某些 web API 使用的 globalThis.location 的值.
--name
Jump to heading
Short flag: -n
可执行文件名称.
--no-config
Jump to heading
禁用自动加载配置文件.
--root
Jump to heading
安装根目录.
--seed
Jump to heading
设置随机数生成器种子.
--v8-flags
Jump to heading
要查看所有可用标志的列表,请使用 --v8-flags=--help
标志也可以通过 DENO_V8_FLAGS 环境变量设置。
使用此标志设置的任何标志都会附加在 DENO_V8_FLAGS 环境变量之后.
调试选项 Jump to heading
--inspect
Jump to heading
在 host:port 上激活检查器 [默认:127.0.0.1:9229]
--inspect-brk
Jump to heading
在 host:port 上激活检查器,等待调试器连接并在用户脚本开始时中断.
--inspect-wait
Jump to heading
在 host:port 上激活检查器并等待调试器连接后再运行用户代码.
示例 Jump to heading
deno install Jump to heading
使用此命令安装 deno.json
和 package.json
中定义的所有依赖项。
依赖项将安装在全局缓存中,但如果你的项目有 package.json
文件,本地
node_modules
目录也将被设置。
deno install [PACKAGES] Jump to heading
使用此命令安装特定包并将其添加到 deno.json
或 package.json
。
$ deno install jsr:@std/testing npm:express
你也可以使用 deno add
,它是 deno install [PACKAGES]
的别名。
如果你的项目有 package.json
文件,来自 npm 的包将被添加到 package.json
的
dependencies
中。否则,所有包都将被添加到 deno.json
。
deno install --entrypoint [FILES] Jump to heading
使用此命令安装提供的文件及其依赖项中使用的所有依赖项。
如果你在代码中使用 jsr:
、npm:
、http:
或 https:
说明符,并希望在部署项目之前缓存所有依赖项,这将特别有用。
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 [PACKAGE_OR_URL] Jump to heading
使用此命令将提供的包或脚本安装为系统上全局可用的二进制文件。
此命令创建一个薄的可执行 shell 脚本,该脚本使用指定的 CLI 标志和主模块调用
deno
。它被放置在安装根目录中。
示例:
$ deno install --global --allow-net --allow-read jsr:@std/http/file-server
Download jsr:@std/http/file-server...
✅ 成功安装 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
如果需要,必须手动将这些路径添加到 PATH 中。
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();
}
当你创建可执行脚本时,请确保通过将示例安装命令添加到你的存储库来让用户知道:
# 使用 deno install 安装
$ deno install -n awesome_cli https://example.com/awesome/cli.ts
原生 Node.js 插件 Jump to heading
许多流行的 npm 包,如 npm:sqlite3
或
npm:duckdb
,依赖于
"生命周期脚本",例如
preinstall
或 postinstall
脚本。大多数情况下,运行这些脚本是包正常工作的必要条件。
与 npm 不同,Deno 默认不运行这些脚本,因为它们可能带来潜在的安全漏洞。
你仍然可以通过在运行 deno install
时传递 --allow-scripts=<packages>
标志来运行这些脚本:
deno install --allow-scripts=npm:sqlite3
安装所有依赖项并允许 npm:sqlite3
包运行其生命周期脚本。
卸载 Jump to heading
你可以使用 deno uninstall
命令卸载依赖项或二进制脚本:
$ deno uninstall express
Removed express
$ deno uninstall -g file-server
deleted /Users/deno/.deno/bin/file-server
✅ 成功卸载 file-server
有关更多详细信息,请参阅
deno uninstall
页面。