Deno 1.31, последняя версия конкурирующей среды выполнения Node.js для JavaScript, TypeScript и WebAssembly, добавляет package.json
поддерживать. Новая функция является одним из нескольких улучшений, призванных облегчить разработчикам переход от существующих проектов Node.js.
Теперь Deno автоматически обнаружит package.json
и использовать его для установки и разрешения используемых зависимостей. Это также позволяет запускать специфичные для проекта сценарии, определенные в scripts
раздел с deno task
. Однако текущая поддержка ограничена простыми скриптами. Такие программы, как rimraf
или cross-env
пока не будут работать, но их поддержка будет добавлена в следующем выпуске.
Deno 1.31 также стабилизирует Node-API (N-API). Разработчикам больше не нужно использовать unstable
флаг при использовании пакетов NPM, которые полагаются на этот API. Многие исправления ошибок были применены к Node-API, и теперь можно без проблем использовать больше пакетов. Остальные ошибки будут устранены в ближайшие недели.
Кроме того, Deno 1.31 переносит уровень совместимости для Node.js непосредственно в среду выполнения Deno. Ранее совместимость с Node.js обеспечивалась с помощью https:/deno.land/std.node
, набор полифилов в пользовательском коде в стандартной библиотеке Deno. Поскольку зависимость от https://deno.land/std
приходилось обновлять с каждым выпуском Deno, уровень совместимости нужно было загружать после каждого обновления. Теперь уровень совместимости встроен в среду выполнения, а моментальные снимки движка JavaScript V8 используются для сокращения времени запуска. Более тесная интеграция упрощает полифиллинг отсутствующих API и повышает производительность встроенных модулей Node.js. Чтобы использовать встроенные полифиллы, разработчики могут импортировать из node: specifiers
.
Доступ к Deno 1.31, представленному 24 февраля, можно получить через deno upgrade
для текущих пользователей. Другие варианты установки перечислены на GitHub. Deno 1.31 следует за выпущенным в прошлом месяце Deno 1.30, в котором улучшена поддержка модулей Node.js.
Также в Дено 1.31:
- В качестве критического изменения указатели теперь представлены в виде простых объектов или null для нулевых указателей. Эти объекты созданы V8 и поддерживаются V8 Fast API, повышая производительность FFI (интерфейса внешних функций) при работе с
“pointer”
введите параметры и возвращайте значения из предыдущих версий. Объекты-указатели непрозрачны, и ими нельзя манипулировать напрямую из JavaScript. Таким образом, FFI становится более безопасным в использовании, а подмена указателя уже не так проста, как запись номера JavaScript. Обратите внимание, что FFI API нестабилен. -
Deno.Command
иDeno.osUptime()
API теперь стабилизированы. Разработчикам рекомендуется мигрировать сDeno.run()
API дляDeno.Command
. -
Deno.build.os
API теперь возвращает больше вариантов для операционных систем, таких как"darwin"
,"linux"
,"windows"
и"solaris"
. - Для стандартной библиотеки модули для
https://deno.land/std/node
был удален. Этот код теперь напрямую встроен в среду выполнения Deno. - Для командного интерфейса
deno bundle
команда больше не поддерживается и не будет отображаться в выводе справки. - Также для CLI,
deno benchcode
теперь принимает--json
флаг, который будет печатать результаты тестов в формате JSON. - Интерактивная подсказка разрешения теперь принимает новый параметр,
A
. Этот параметр включает предоставление разрешения на последующие вызовы API с использованием предоставленного домена. deno compile
теперь понимает динамический импорт, который может быть разрешен во время компиляции.
Далее прочитайте это:
- Лучшее программное обеспечение с открытым исходным кодом 2022 года
- Разработчики не хотят заниматься операциями
- 7 причин, почему Java по-прежнему великолепна
- Почему Wasm — это будущее облачных вычислений
- Почему оценки программной инженерии — это мусор
- Объяснение непрерывной интеграции и непрерывной доставки