標準ライブラリ

Denoは、コアチームによって監査され、Denoでの動作が保証されている一連の標準モジュールを提供します。

標準ライブラリはhttps://deno.land/std/で入手できます。

バージョン管理と安定性

標準ライブラリはまだ安定していないため、Denoとはバージョンが異なります。最新のリリースについては、https://deno.land/std/またはhttps://deno.land/std/version.ts。を参照してください。標準ライブラリは、Denoがリリースされるたびにリリースされます。

意図しない変更を避けるために、常に標準ライブラリの固定バージョンでインポートを使用することを強くお勧めします。例えば、いつでも変更される可能性があるコードのマスターブランチにリンクするのではなく、コンパイルエラーや予期しない動作を引き起こす可能性があります。

// imports from master, this should be avoided
import { copy } from "https://deno.land/std/fs/copy.ts";

代わりに、バージョンを指定してstdライブラリを使用すればイミュータブルです:

// imports from v0.65.0 of std, never changes
import { copy } from "https://deno.land/std@0.65.0/fs/copy.ts";

トラブルシューティング

標準ライブラリで提供されているモジュールの一部は、不安定なDeno APIを使用しています。

このようなモジュールを--unstable CLIフラグなしで実行しようとすると、Deno名前空間にいくつかのAPIが存在しないことを示唆する多くのTypeScriptエラーが発生します。

// main.ts
import { copy } from "https://deno.land/std@0.65.0/fs/copy.ts";

copy("log.txt", "log-old.txt");
$ deno run --allow-read --allow-write main.ts
Compile file:///dev/deno/main.ts
Download https://deno.land/std@0.65.0/fs/copy.ts
Download https://deno.land/std@0.65.0/fs/ensure_dir.ts
Download https://deno.land/std@0.65.0/fs/_util.ts
error: TS2339 [ERROR]: Property 'utime' does not exist on type 'typeof Deno'.
    await Deno.utime(dest, statInfo.atime, statInfo.mtime);
               ~~~~~
    at https://deno.land/std@0.65.0/fs/copy.ts:90:16

TS2339 [ERROR]: Property 'utimeSync' does not exist on type 'typeof Deno'.
    Deno.utimeSync(dest, statInfo.atime, statInfo.mtime);
         ~~~~~~~~~
    at https://deno.land/std@0.65.0/fs/copy.ts:101:10

この問題を解決するには、--unstableフラグを追加する必要があります:

deno run --allow-read --allow-write --unstable main.ts

API生成エラーが不安定であることを確認するには、 lib.deno.unstable.d.ts を確認してください。

この問題は近い将来に修正される予定です。依存する特定のモジュールがフラグなしで正常にコンパイルされる場合は、フラグを省略してもかまいません。