deno transpile
Команда deno transpile генерирует JavaScript из исходных файлов TypeScript, JSX или TSX. Она пригодится, если вам нужен обычный вывод .js для запуска в среде, которая не понимает TypeScript, или чтобы передать его на этап сборки, который ожидает JavaScript.
Для большинства сценариев работы deno transpile не нужен — deno run, deno test и deno serve уже принимают файлы .ts / .tsx напрямую. Используйте эту команду, если:
- Вы поставляете библиотеку пользователям, которые запускают
nodeили непосредственно сборщик для браузера. (Для tarball-пакетов npm предпочтительнееdeno pack, который дополняетdeno transpileлогикой упаковки.) - Инструмент на следующем этапе понимает только
.js. - Вы хотите включить предварительно скомпилированный
.jsв артефакт сборки, а не выполнять транспиляцию на лету.
Использование
deno transpile <files...> [flags]
<files> — это один или несколько путей к исходным файлам (шаблоны glob раскрываются оболочкой). deno transpile не обходит каталоги — укажите файлы для транспиляции, при необходимости используя шаблон glob оболочки.
Режимы вывода
| Режим | Результат |
|---|---|
| без флага вывода | Записать результат транспиляции в стандартный вывод. |
-o <path>, --output <path>
| Записать результат в один файл. Несовместимо с --outdir. |
--outdir <dir> | Записать каждый входной файл в <dir>, сохранив структуру исходных файлов. |
# Print to stdout
deno transpile main.ts
# Write to a single file
deno transpile main.ts -o dist/main.js
# Transpile multiple files into an output directory
deno transpile src/main.ts src/helpers.ts --outdir dist
# Use a shell glob
deno transpile src/*.ts --outdir dist
Соответствие расширений входных и выходных файлов
| Входной файл | Выходной файл | Карта исходного кода |
|---|---|---|
.ts | .js | .js.map |
.tsx | .js | .js.map |
.jsx | .js | .js.map |
.mts | .mjs | .mjs.map |
.cts | .cjs | .cjs.map |
Преобразование JSX, декораторы, целевая версия и другие параметры генерации берутся из compilerOptions в вашем deno.json (или tsconfig.json), поэтому результат соответствует коду, который выполнил бы deno run. Полный список см. в разделе Параметры компилятора TypeScript.
Карты исходного кода
Передайте --source-map с одним из следующих значений:
| Режим | Результат |
|---|---|
none | (по умолчанию) без карты исходного кода |
inline | встроить карту исходного кода в виде комментария data: в каждый файл |
separate | записать отдельный файл .js.map (или .mjs.map / .cjs.map) |
deno transpile main.ts -o dist/main.js --source-map separate
Объявления типов
Используйте --declaration для генерации файлов объявлений .d.ts. Объявления создаются с помощью tsc (с использованием встроенного TypeScript), поэтому этот флаг учитывает compilerOptions из вашего deno.json / tsconfig.json.
Файлы .d.ts всегда записываются на диск — рядом с исходным файлом, если место вывода не задано, или в --outdir, если оно указано, — даже если вывод JavaScript направляется в стандартный вывод или в один файл -o.
deno transpile src/*.ts --outdir dist --declaration
Отличия от tsc
deno transpile и tsc в TypeScript выполняют похожие задачи, но не являются взаимозаменяемыми:
| Аспект | deno transpile | tsc |
|---|---|---|
| Проверка типов | Не выполняется — только генерация. Используйте отдельно deno check. | По умолчанию выполняется полная проверка типов. |
Генерация .d.ts | Да, с помощью --declaration. Делегирует работу встроенному tsc. | Да. |
| Импорты из JSR / npm / удалённых источников | Разрешает их. | Не разрешает их. |
| Источник конфигурации |
deno.json (или tsconfig.json). |
Только tsconfig.json. |
| Скорость | Быстрая генерация на основе SWC. | Медленнее (включает проверку типов). |
Чтобы обнаруживать ошибки типов, запускайте deno check до или после транспиляции. deno transpile без проблем сгенерирует код, который не пройдёт проверку типов.
Ограничения
-
Без объединения файлов. Для каждого входного файла создаётся один выходной. В импортах меняется только расширение (
./foo.ts→./foo.js), однако для полученного графа по-прежнему нужна среда выполнения, разрешающая импорты. Чтобы получить один файл, используйтеdeno bundle. -
Каталоги не обходятся. Передача каталога ничего не даст — укажите файлы явно (
src/**/*.ts) или используйте шаблон glob. -
Карты исходного кода и стандартный вывод.
--source-map inlineработает при выводе в стандартный поток; дляseparateтребуется путь вывода, чтобы рядом с ним можно было записать карту.
См. также
-
deno bundle— создать один объединённый файл JavaScript -
deno pack— собрать tarball для публикации в npm (внутри используетdeno transpile) -
deno check— проверить типы без генерации файлов - Поддержка TypeScript — обзор работы TypeScript в Deno
deno transpile [OPTIONS] [file]...Транспилировать файлы TypeScript/JSX/TSX в JavaScript.
deno transpile main.ts
Вывести результат в указанный файл:
deno transpile main.ts -o main.js
Вывести результат в каталог:
deno transpile src/*.ts --outdir dist
С картами исходного кода:
deno transpile main.ts --source-map separate
Создать файлы объявлений:
deno transpile main.ts -o out.js --declaration
Примечание: --declaration всегда записывает файлы .d.ts на диск (рядом с исходным файлом или в --outdir).
Параметры управления зависимостями
--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 (isolated или hoisted).
--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.
Параметры
--cert<FILE>
Загрузить центр сертификации из файла в кодировке PEM.
--conditions<conditions>
Используйте этот аргумент, чтобы указать пользовательские условия для экспорта пакетов npm. Также можно использовать переменную окружения DENO_CONDITIONS. .
--config, -c<FILE>
Настроить различные аспекты Deno, включая TypeScript, линтинг и форматирование кода. Обычно файл конфигурации называется deno.json или deno.jsonc и обнаруживается автоматически; в этом случае данный флаг не требуется.
--declarationСоздать файлы объявлений .d.ts (требуется проверка типов с помощью tsc).
--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>
Путь к выходному файлу (для транспиляции в один файл).
--source-map<source-map>
Режим карты исходного кода: none, inline или separate.
Последнее обновление:
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/cli/transpile