Skip to main content
On this page

deno bundle

Info
deno bundle 当前是一个实验性子命令,可能会发生变化。

deno bundle 会将你的模块及其所有依赖合并为一个 JavaScript 文件,底层使用 esbuild。它 适合将项目作为单个优化后的文件进行部署或分发, 但目前并不打算替代诸如 Vitewebpack 之类复杂或交互式的 构建工具。

基本用法 Jump to heading

>_
deno bundle -o output.js main.ts

如果不使用 -o/--output,bundle 会写入标准输出。然后可以使用 Deno 或其他 JavaScript 运行时来运行该输出文件:

>_
deno run output.js

常用选项 Jump to heading

使用 --platform 指定目标平台(默认为 deno,也可以是 browser),使用 --minify 缩减输出,并使用 --sourcemap 生成源映射:

>_
deno bundle --platform=browser --minify --sourcemap -o dist/app.js main.ts

使用 --code-splitting 和输出目录将共享代码拆分为单独的 chunks:

>_
deno bundle --code-splitting --outdir dist/ main.ts worker.ts

使用 --external 将依赖项排除在 bundle 之外:

>_
deno bundle --external npm:sharp -o output.js main.ts

类型检查 Jump to heading

deno bundle 默认不会对你的代码进行类型检查。使用 --check 标志启用类型检查:

>_
# bundle 时检查本地模块的类型
deno bundle --check -o output.js main.ts

# 也检查远程模块的类型
deno bundle --check=all -o output.js main.ts

你也可以使用 --no-check 显式跳过类型检查,而 --no-check=remote 仅忽略来自远程模块的诊断信息。

有关在 Deno 中进行打包策略的更多信息,请参阅 Bundling 指南。

Command line usage:
deno bundle [OPTIONS] [file]...

Output a single JavaScript file with all dependencies.

deno bundle jsr:@std/http/file-server -o file-server.bundle.js

If no output file is given, the output is written to standard output:

deno bundle jsr:@std/http/file-server

Type checking options Jump to heading

--check<CHECK_TYPE>optional
Jump to heading

Enable type-checking. This subcommand does not type-check by default If the value of "all" is supplied, remote modules will be included. Alternatively, the 'deno check' subcommand can be used.

--no-check<NO_CHECK_TYPE>optional
Jump to heading

Skip type-checking. If the value of "remote" is supplied, diagnostic errors from remote modules will be ignored.

Dependency management options Jump to heading

--frozen<BOOLEAN>optional
Jump to heading

Error out if lockfile is out of date.

Load import map file from local file or remote URL.

--lock<FILE>optional
Jump to heading

Check the specified lock file. (If value is not provided, defaults to "./deno.lock").

Disable auto discovery of the lock file.

Do not resolve npm modules.

--no-remote
Jump to heading

Do not resolve remote modules.

--node-modules-dir<MODE>optional
Jump to heading

Sets the node modules management mode for npm packages.

--node-modules-linker<MODE>
Jump to heading

Sets the linker mode for npm packages (isolated or hoisted).

--reload, -r<CACHE_BLOCKLIST>optional
Jump to heading

Reload source code cache (recompile TypeScript) no value Reload everything jsr:@std/http/file-server,jsr:@std/assert/assert-equals Reloads specific modules npm: Reload all npm modules npm:chalk Reload specific npm module.

--vendor<vendor>optional
Jump to heading

Toggles local vendor folder usage for remote modules and a node_modules folder for npm packages.

Options Jump to heading

--allow-import, -I<IP_OR_HOSTNAME>optional
Jump to heading

Allow importing from remote hosts. Optionally specify allowed IP addresses and host names, with ports as necessary. Default value: deno.land:443,jsr.io:443,esm.sh:443,raw.esm.sh:443,cdn.jsdelivr.net:443,raw.githubusercontent.com:443,gist.githubusercontent.com:443.

--allow-scripts<PACKAGE>optional
Jump to heading

Allow running npm lifecycle scripts for the given packages Note: Scripts will only be executed when using a node_modules directory (--node-modules-dir).

--cert<FILE>
Jump to heading

Load certificate authority from PEM encoded file.

--code-splitting
Jump to heading

Enable code splitting.

Use this argument to specify custom conditions for npm package exports. You can also use DENO_CONDITIONS env var. .

Configure different aspects of deno including TypeScript, linting, and code formatting. Typically the configuration file will be called deno.json or deno.jsonc and automatically detected; in that case this flag is not necessary.

--deny-import<IP_OR_HOSTNAME>optional
Jump to heading

Deny importing from remote hosts. Optionally specify denied IP addresses and host names, with ports as necessary.

--external<external>
Jump to heading
--format<format>
Jump to heading
--inline-imports<inline-imports>optional
Jump to heading

Whether to inline imported modules into the importing file [default: true]

--keep-names
Jump to heading

Keep function and class names.

Minify the output.

--minimum-dependency-age<minimum-dependency-age>
Jump to heading

(Unstable) The age in minutes, ISO-8601 duration or RFC3339 absolute timestamp (e.g. '120' for two hours, 'P2D' for two days, '2025-09-16' for cutoff date, '2025-09-16T12:00:00+00:00' for cutoff time, '0' to disable).

--no-config
Jump to heading

Disable automatic loading of the configuration file.

--outdir<outdir>
Jump to heading

Output directory for bundled files.

--output, -o<output>
Jump to heading

Output path`.

--packages<packages>
Jump to heading

How to handle packages. Accepted values are 'bundle' or 'external'.

--platform<platform>
Jump to heading

Platform to bundle for. Accepted values are 'browser' or 'deno'.

--sourcemap<sourcemap>optional
Jump to heading

Generate source map. Accepted values are 'linked', 'inline', or 'external'.

Watch and rebuild on changes.

Last updated on

Did you find what you needed?

编辑此页面
Privacy policy