Denoの直近の変更について

先週に続いていくつかの新機能がmainブランチにマージされているため、紹介いたします。

--node-modules-linker=hoisted

--node-modules-linkerオプションが追加されています (#32788)。

これはpnpmにおけるnodeLinkerオプションに相当するオプションのようで、現状ではhoistedまたはisolatedのいずれかの値の指定がサポートされています。デフォルト値はisolatedで、isolatedが指定されている際は、今まで通り、pnpmなどと同様のレイアウトでnode_modulesが作成されます。

それに対して hoisted (--node-modules-linker=hoisted) を指定すると、DenoがnpmやYarn v1と同様のレイアウトでnode_modulesを作成してくれます (--node-modules-dir=manualとの併用が必要です)

また、本オプションはdeno.jsonにおけるnodeModulesLinkerによって設定することも可能です。

このオプションの追加によりnpmを採用したプロジェクトとの互換性が改善されそうです。

Deno.test()timeoutオプションが追加

Deno.test()timeoutオプションが追加されています (#33815)

ミリ秒単位でテストケースごとにタイムアウトを設定できます。

Deno.test({
  name: "doSomethingAsync",
  timeout: 5_000,
  fn: async () => {
    const result = await doSomethingAsync();
    assert(result === 123);
  },
});