deno bundle
deno bundle — экспериментальная подкоманда, которая может измениться.deno bundle объединяет ваш модуль и все его зависимости в один файл JavaScript, используя под капотом esbuild. Эта команда полезна для развертывания или распространения проекта в виде одного оптимизированного файла, но в настоящее время не предназначена для замены сложных или интерактивных инструментов сборки, таких как Vite или webpack.
Основное использование
deno bundle -o output.js main.ts
Если не указать -o/--output, сборка будет записана в стандартный вывод. Затем выходной файл можно запустить с помощью Deno или в других средах выполнения JavaScript:
deno run output.js
Основные параметры
Выберите целевую платформу с помощью --platform (по умолчанию deno или browser), уменьшите размер выходных данных с помощью --minify и создайте карты исходного кода с помощью --sourcemap:
deno bundle --platform=browser --minify --sourcemap -o dist/app.js main.ts
Разделите общий код на отдельные фрагменты с помощью --code-splitting и укажите выходной каталог:
deno bundle --code-splitting --outdir dist/ main.ts worker.ts
Исключите зависимость из сборки с помощью --external:
deno bundle --external npm:sharp -o output.js main.ts
Создайте объявления TypeScript вместе с выходными данными JS с помощью --declaration. Deno объединяет типы для каждой точки входа в один автономный файл .d.ts:
deno bundle main.ts --outdir dist --declaration
# Produces dist/main.js and dist/main.d.ts
Проверка типов
По умолчанию deno bundle не проверяет типы в коде. Включите проверку типов с помощью флага --check:
# type-check local modules while bundling
deno bundle --check -o output.js main.ts
# also type-check remote modules
deno bundle --check=all -o output.js main.ts
Проверку типов также можно явно пропустить с помощью --no-check, а --no-check=remote игнорирует диагностику только удаленных модулей.
Поле browser
При сборке с помощью --platform=browser Deno учитывает поле npm browser в package.json зависимости, в том числе его объектную форму. Объект сопоставляет модули с заменами, предназначенными для браузера:
{
"browser": {
"./server.js": "./client.js",
"crypto": false,
"foo": "./shims/foo.js"
}
}
- Ключ с относительным путем перенаправляет разрешенный файл на файл для браузера (
./server.jsстановится./client.js). - Ключ с простым спецификатором перенаправляет импорт (
fooстановится./shims/foo.js). Начальный префиксnode:удаляется перед поиском, поэтомуimport "node:crypto"соответствует ключу"crypto". - Значение
falseисключает модуль: сборщик подставляет пустую заглушку.
Дополнительные сведения о стратегиях сборки с Deno см. в руководстве Сборка.
deno bundle [OPTIONS] [file]...Выведите один файл JavaScript со всеми зависимостями.
deno bundle jsr:@std/http/file-server -o file-server.bundle.js
Если выходной файл не указан, данные записываются в стандартный вывод:
deno bundle jsr:@std/http/file-server
Параметры проверки типов
--check<CHECK_TYPE>необязательный
Включить проверку типов. По умолчанию эта подкоманда не проверяет типы; передайте --check=all, чтобы также проверять типы удаленных модулей. В качестве альтернативы используйте подкоманду 'deno check'.
--no-check<NO_CHECK_TYPE>необязательный
Пропустить проверку типов. Если указано значение "remote", диагностические ошибки удаленных модулей будут игнорироваться.
Параметры управления зависимостями
--frozen<BOOLEAN>необязательный
Завершить работу с ошибкой, если lock-файл устарел.
--import-map<FILE>
Загрузить файл карты импорта из локального файла или удаленного URL-адреса.
--lock<FILE>необязательный
Проверить указанный lock-файл. (Если значение не задано, по умолчанию используется "./deno.lock".)
--no-lockОтключить автоматический поиск lock-файла.
--no-npmНе разрешать npm-модули.
--no-remoteНе разрешать удаленные модули.
--node-modules-dir<MODE>необязательный
Выбирает режим каталога node_modules для npm-пакетов (не путь). Возможные значения: auto (создать локальный каталог node_modules и установить в него npm-пакеты), manual (использовать существующий локальный каталог node_modules, не изменяя его), none (не использовать локальный каталог node_modules; разрешать npm-пакеты из глобального кэша). Если флаг передан без значения, по умолчанию используется auto.
--node-modules-linker<MODE>
Задает режим компоновщика для npm-пакетов (изолированный или поднятый в корень).
--reload, -r<CACHE_BLOCKLIST>необязательный
Перезагрузить кэш исходного кода (повторно скомпилировать TypeScript). Если значение не задано, перезагружается всё. Передайте список спецификаторов, разделенных запятыми, чтобы перезагрузить только указанные модули; npm: перезагружает все npm-модули; npm:chalk перезагружает один npm-модуль; jsr:@std/http/file-server,jsr:@std/assert/assert-equals перезагружает указанные модули.
--vendor<vendor>необязательный
Включает или отключает использование локальной папки vendor для удаленных модулей и папки node_modules для npm-пакетов.
Параметры
--allow-import, -I<IP_OR_HOSTNAME>необязательный
Разрешить импорт с удаленных узлов. При необходимости укажите разрешенные IP-адреса и имена узлов, а также порты. Значения по умолчанию: 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>необязательный
Разрешить выполнение скриптов жизненного цикла npm для указанных пакетов. Примечание: скрипты выполняются только при использовании каталога node_modules (--node-modules-dir).
--cert<FILE>
Загрузить центр сертификации из файла в формате PEM.
--code-splittingВключить разделение кода.
--conditions<conditions>
Используйте этот аргумент, чтобы задать пользовательские условия для экспортов npm-пакетов. Также можно использовать переменную среды DENO_CONDITIONS. .
--config, -c<FILE>
Настроить различные аспекты Deno, включая TypeScript, линтинг и форматирование кода. Обычно файл конфигурации называется deno.json или deno.jsonc и определяется автоматически; в этом случае флаг не требуется.
--declarationСоздать файлы объявлений .d.ts вместе со сборкой.
--deny-import<IP_OR_HOSTNAME>необязательный
Запретить импорт с удаленных узлов. При необходимости укажите запрещенные IP-адреса и имена узлов, а также порты.
--env-file<FILE>необязательный
Загрузить переменные среды из локального файла. Используется только первая переменная среды с заданным ключом. Существующие переменные среды процесса не перезаписываются, поэтому, если в среде уже есть переменные с теми же именами, их значения сохраняются. Если в файле .env указано несколько объявлений одной переменной среды, применяется первое из них. Порядок определяется последовательностью файлов, переданных в аргументах.
--external<external>
--format<format>
--inline-imports<inline-imports>необязательный
Встраивать ли импортированные модули в импортирующий файл [по умолчанию: true]
--keep-namesСохранить имена функций и классов.
--minifyМинифицировать выходные данные.
--minimum-dependency-age<minimum-dependency-age>
(Нестабильный) Возраст в минутах, продолжительность в формате ISO-8601 или абсолютная временная метка RFC3339 (например, '120' — два часа, 'P2D' — два дня, '2025-09-16' — дата отсечения, '2025-09-16T12:00:00+00:00' — время отсечения, '0' — отключить).
--no-configОтключить автоматическую загрузку файла конфигурации.
--outdir<outdir>
Каталог для выходных файлов сборки.
--output, -o<output>
Путь к выходному файлу`.
--packages<packages>
Способ обработки пакетов. Допустимые значения: 'bundle' или 'external'.
--platform<platform>
Платформа, для которой выполняется сборка. Допустимые значения: 'browser' или 'deno'.
--sourcemap<sourcemap>необязательный
Создать карту исходного кода. Допустимые значения: 'linked', 'inline' или 'external'.
--watchОтслеживать изменения и выполнять повторную сборку.
Последнее обновление:
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/cli/bundle