Нестабильные флаги функций
Новые функции среды выполнения Deno часто выпускаются за флагами функций, чтобы пользователи могли опробовать новые API и возможности до их окончательной доработки. Текущие нестабильные флаги функций перечислены на этой странице, а также их можно найти в справке CLI, выполнив команду:
deno --help
Использование флагов в командной строке
Вы можете включить флаг функции при запуске программы Deno из командной строки, передав его CLI в качестве параметра. Пример запуска программы с включённым флагом --unstable-node-globals:
deno run --unstable-node-globals main.ts
Настройка флагов в deno.json
Вы можете указать, какие нестабильные функции следует включить для проекта, используя параметр конфигурации в deno.json.
{
"unstable": ["sloppy-imports", "webgpu"]
}
Допустимые значения в массиве unstable — это имена флагов без префикса --unstable-.
Настройка с помощью переменных окружения
Некоторые флаги можно включить, задав любое значение для переменной окружения с определённым именем, вместо передачи флага или использования параметра конфигурации deno.json. Флаги, которые можно задавать с помощью переменных окружения, будут отмечены ниже.
Пример установки флага --unstable-sloppy-imports с помощью переменной окружения:
export DENO_UNSTABLE_SLOPPY_IMPORTS=true
--unstable-detect-cjs
Переменная окружения: DENO_UNSTABLE_DETECT_CJS
Загружает модули .js, .jsx, .ts и .tsx как потенциальные модули CommonJS в следующих дополнительных случаях:
- В файле package.json нет поля
"type". - Файл package.json отсутствует.
По умолчанию Deno загружает эти модули как потенциальные модули CommonJS только в проекте с файлом package.json, если в ближайшем package.json указано { "type": "commonjs" }.
Требуется Deno >= 2.1.2
--unstable-node-globals
Этот флаг добавляет специфичные для Node глобальные переменные в глобальную область видимости. Добавляются следующие глобальные переменные:
BufferglobalsetImmediateclearImmediate
Обратите внимание: process доступен в качестве глобальной переменной начиная с Deno 2.0.
Требуется Deno >= 2.1.0
--unstable-sloppy-imports
Переменная окружения: DENO_UNSTABLE_SLOPPY_IMPORTS
Этот флаг включает поведение, при котором расширения файлов определяются по импортам, в которых они не указаны. Обычно приведённая ниже инструкция импорта вызывает ошибку:
import { Example } from "./bar";
console.log(Example);
export const Example = "Example";
Запуск скрипта с включёнными нестрогими импортами устраняет ошибку, но выводит рекомендацию использовать более производительный синтаксис.
Нестрогие импорты позволяют (но выводят предупреждения) выполнять следующие действия:
- Не указывать расширения файлов в импортах
- Указывать неверные расширения файлов (например, импортировать с расширением
.js, хотя фактический файл имеет расширение.ts) - Импортировать путь к каталогу, автоматически используя
index.jsилиindex.tsдля импорта этого каталога
deno compile не поддерживает нестрогие импорты.
--unstable-unsafe-proto
В целях безопасности Deno принял осознанное решение не поддерживать Object.prototype.__proto__. Однако многие пакеты npm по-прежнему зависят от этого свойства для корректной работы.
Этот флаг включает это свойство. Обратите внимание: использовать его не рекомендуется, но если вам действительно нужен пакет, который от него зависит, теперь вы можете обойти это ограничение.
Начиная с Deno 2.9, --unsafe-proto — это стабильный краткий вариант той же настройки. Он записывается как обычный, а не нестабильный флаг, поэтому deno run --unsafe-proto main.ts и deno run --unstable-unsafe-proto main.ts эквивалентны.
--unstable-webgpu
Включает API WebGPU в глобальной области видимости, как в браузере. Ниже приведён простой пример получения основных сведений о графическом процессоре с помощью этого API:
// Try to get an adapter from the user agent.
const adapter = await navigator.gpu.requestAdapter();
if (adapter) {
// Print out some basic details about the adapter.
const adapterInfo = await adapter.requestAdapterInfo();
// On some systems this will be blank...
console.log(`Found adapter: ${adapterInfo.device}`);
// Print GPU feature list
const features = [...adapter.features.values()];
console.log(`Supported features: ${features.join(", ")}`);
} else {
console.error("No adapter found");
}
Другие примеры использования WebGPU см. в этом репозитории.
--unstable-broadcast-channel
Включение этого флага делает веб-API BroadcastChannel доступным в глобальной области видимости, как в браузере.
--unstable-worker-options
Включает нестабильные параметры API Web Worker. В частности, позволяет задавать разрешения, доступные рабочим потокам:
new Worker(`data:application/javascript;base64,${btoa(`postMessage("ok");`)}`, {
type: "module",
deno: {
permissions: {
read: true,
},
},
}).onmessage = ({ data }) => {
console.log(data);
};
--unstable-cron
Включение этого флага делает API Deno.cron доступным в пространстве имён Deno.
--unstable-kv
Включение этого флага делает API Deno KV доступными в пространстве имён Deno.
--unstable-net
Включает нестабильные сетевые API. К ним относятся:
--unstable-otel
Включает интеграцию OpenTelemetry для Deno. Эта функция стала стабильной, поэтому в Deno 2.4 и более поздних версиях этот флаг не требуется.
--unstable-bundle
Включает нестабильный API среды выполнения Deno.bundle для программной сборки программ на JavaScript и TypeScript. См. также команду deno bundle.
--unstable-lazy-dynamic-imports
При запуске без проверки типов динамические импорты, поддающиеся статическому анализу, загружаются по мере необходимости, а не сразу. Обратите внимание: это может изменить порядок разрешения спецификаторов semver.
--unstable-npm-lazy-caching
Загружает зависимости npm только при фактическом обращении к ним через импорт, а не устанавливает при запуске все пакеты npm, перечисленные в package.json.
--unstable-no-legacy-abort
Использует сигнал отмены в Deno.serve без устаревшего поведения. С этим флагом request.signal отменяет запрос только при фактическом отключении клиента, а не после каждого успешного ответа.
О причинах изменения поведения отмены запросов и способах определить, что запрос был полностью доставлен, см. раздел Поведение отмены запросов в Deno.serve.
--unstable
--unstable устарел — используйте отдельные флаги.
Флаг --unstable больше не используется для новых функций и будет удалён в одном из будущих выпусков. Все нестабильные функции, доступные с помощью этого флага, теперь можно включить с помощью отдельных нестабильных флагов, в частности:
--unstable-kv--unstable-cron
В дальнейшем используйте вместо него эти флаги функций.
--unstable-temporal
Начиная с Deno 2.7, API Temporal является стабильным и доступен по умолчанию. Флаг --unstable-temporal больше не требуется.
API Temporal — это современный API для работы с датой и временем, доступный в глобальной области видимости. Он обеспечивает более широкую поддержку часовых поясов и календарей, а также более точные вычисления даты и времени по сравнению с устаревшим объектом Date.
// Get the current date and time
const now = Temporal.Now.plainDateTimeISO();
console.log(`Current date and time: ${now}`);
const date = Temporal.PlainDate.from("2025-07-10");
const nextWeek = date.add({ days: 7 });
console.log(`Next week: ${nextWeek}`);
// Working with time zones
const zonedDateTime = Temporal.Now.zonedDateTimeISO("America/New_York");
console.log(`Time in New York: ${zonedDateTime}`);
--unstable-tsgo
Выполняет проверку типов с помощью нативного компилятора TypeScript (написанного на Go), который зачастую примерно в 10 раз быстрее стандартного JavaScript tsc. Deno интегрирует нативный компилятор с собственным разрешением модулей и типами, поэтому проверка типов кода Deno выполняется обычным образом.
deno check --unstable-tsgo main.ts
Его также можно включить с помощью переменной окружения DENO_UNSTABLE_TSGO=1 или "unstable": ["tsgo"] в deno.json. Эта функция доступна в предварительной версии и пока не реализована полностью. Подробности см. в разделе TypeScript.
Последнее обновление:
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/cli/unstable_flags