Стандартная библиотека
Deno предоставляет стандартную библиотеку, написанную на TypeScript. Это набор стандартных модулей, которые могут быть повторно использованы программами, позволяя вам сосредоточиться на логике вашего приложения, а не «изобретать велосипед» для распространённых задач. Все модули в стандартной библиотеке Deno проверяются основной командой и гарантированно работают с Deno, обеспечивая согласованность и надёжность.
Многие пакеты в стандартной библиотеке Deno также совместимы с Node.js, Cloudflare Workers и другими средами JavaScript. Это позволяет вам писать код, который может выполняться в нескольких средах без модификаций.
Стандартная библиотека размещена на JSR и доступна по адресу: https://jsr.io/@std. Пакеты документированы, протестированы и включают примеры использования. Вы можете просмотреть весь список пакетов стандартной библиотеки на JSR, но вот несколько примеров:
-
@std/path: Утилиты для работы с путями, аналогичные модулю Node.js's
path. - @std/jsonc: (Де)сериализация JSON с комментариями
- @std/encoding: Утилиты для кодирования и декодирования распространённых форматов, таких как hex, base64 и variant
Версионирование и стабильность
Каждый пакет стандартной библиотеки имеет независимую версию. Пакеты следуют правилам семантического версионирования. Вы можете использовать фиксирование версий или диапазоны версий, чтобы предотвратить влияние крупных релизов на ваш код.
Импорт модулей стандартной библиотеки
Чтобы установить пакеты из стандартной библиотеки Deno, вы можете использовать подкоманду deno add для добавления пакета в вашу deno.json карту импорта.
deno add jsr:@std/fs jsr:@std/path
Поле deno.json imports будет обновлено, чтобы включить эти импорты:
{
"imports": {
"@std/fs": "jsr:@std/fs@^1.0.2",
"@std/path": "jsr:@std/path@^1.0.3"
}
}
Затем вы можете импортировать эти пакеты в свой исходный код:
import { copy } from "@std/fs";
import { join } from "@std/path";
await copy("foo.txt", join("dist", "foo.txt"));
В качестве альтернативы, вы можете импортировать модули напрямую с помощью спецификатора jsr::
import { copy } from "jsr:@std/fs@^1.0.2";
import { join } from "jsr:@std/path@^1.0.3";
await copy("foo.txt", join("dist", "foo.txt"));
Совместимость с Node.js
Стандартная библиотека Deno разработана для совместимости с Node.js, Cloudflare Workers и другими средами JavaScript. Стандартная библиотека написана на TypeScript и скомпилирована в JavaScript, поэтому её можно использовать в любой среде JavaScript.
npx jsr add @std/fs @std/path
Выполнение этой команды добавит эти пакеты в вашу package.json:
{
"dependencies": {
"@std/fs": "npm:@jsr/std__fs@^1.0.2",
"@std/path": "npm:@jsr/std__path@^1.0.3"
}
}
Затем вы можете импортировать их в свой исходный код, как и любой другой пакет Node.js. TypeScript автоматически найдёт определения типов для этих пакетов.
import { copy } from "@std/fs";
import { join } from "@std/path";
await copy("foo.txt", join("dist", "foo.txt"));
© 2018–2024 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/fundamentals/standard_library