DenoのNode.js互換モードについて

denoland/deno#12295のissueで、DenoにNode.jsの互換モードを提供することが提案されています。

Denoを実行する際に--compatオプションを指定すると、Node.jsの組み込みモジュールの読み込みが有効化されるように提案されています。

$ deno run --compat main.mjs

こちらの機能の実装はdenoland/deno#12293のPRにて進行中です。

今のところ、Import mapsとdeno_std/nodeを併用することで、Node.jsの組み込みモジュールを読み込めるように実装されているようです。


Deno v1.14.2

Deno v1.14.2がリリースされました。

このリリースはバグ修正やパフォーマンスの最適化などがメインです。

主な変更点:

  • deno fmtdeno test.mkd, .mkdn, .mdwn, .mdown, 及び.markdownの拡張子のファイルがサポートされました
  • 一度取り消しされたパーミッションが再び許可されないように修正されました
  • Deno.HttpConnがすでに閉じられている場合にrespondWithを呼ぶと、プロセスがパニックする問題が修正されました
  • 祖先のワーカーが閉じられたときまたは終了したときに、合わせて子孫のワーカーも閉じるまたは終了するように修正されました
  • 祖先のワーカーが終了したもののその子孫に生きているワーカーが存在する場合、プロセスがパニックする問題が修正されました
  • WindowsでDeno.killがサポートされました
  • Request/Response/Eventオブジェクトの生成、Headersオブジェクトの内部実装、パーミッションチェックなどが最適化されました

https://github.com/denoland/deno/releases/tag/v1.14.2

deno_std v0.109.0

deno_std v0.109.0がリリースされました

変更点:

  • node: stream/webの部分的なサポートが追加されました
  • node/events: EventEmitter.callを呼べない問題が修正されました
  • node/module: .mjsファイルをrequireできないように修正されました

https://github.com/denoland/deno_std/releases/tag/0.109.0

lint.deno.landがDeno Deployへ移行

deno_lintの公式サイトであるlint.deno.landがDeno Deployへ移行されました。

それに合わせて、内部実装がdext.ts+Tailwind CSSからFresh+Twindへ移行されています。

DenoやDeno Deployなどでフロントエンド開発を行う際に参考になるかもしれないため、興味のある方はソースコードも見てみるとよいかもしれません。


https://github.com/denoland/deno_lint/pull/905