LTSのサポートが終了しました。12.x以上がサポート対象となります。以降をサポート対象としたときに新たにできるようになることをまとめましょう。自由に追加、補足コメント入れておいてください。Modules(ESM)が利用できるようになります。DocumentationこれによりライブラリがCommonJS形式(require/exports)ではなく、ESM形式(import/export)で公開できるようになります。そのため、多くのライブラリがESM形式のみでの公開へと切り替わっていきます。ESMはブラウザ(IE以外)、Node.js、rollup/webpackなどのbundler、TypeScript(exportsフィールドは未対応)/Babel、Jestなど主要なツールがサポートしている状態です。IEの場合は、bundlerなどのツールを経由すれば良いため(またbundlerはESMだと最適化できるため)、ライブラリそのものはESM形式をnpmなどのregistryにpublishするのが適切な状態です。Node.jsがESMにネイティブ対応する以前も、package.jsonのmainフィールドでCommonJS形式とmoduleフィールドでESM形式の両方を公開していました。12でESMに対応したため、ESM形式のみで十分なケースが増えてきてたのと、ESMは静的に依存関係をパースできるため最適化しやすいなど理由からESMへの移行が進んでいます。12からはpackage.jsonのexportsフィールドによって、宣言的にCommonJSとESMの両方へと対応ができるようになっています。一部のツールではまだexportsフィールドに対応していないものもあります。モジュールのAsyncLocalStorageが利用できるようになります。非同期処理のコンテキストに紐づくストレージです。他の言語ならスレッドストレージなどが近い存在です。AsyncLocalStorageを使うと、Node.jsサーバでリクエストのコンテキストに紐づくログやトレーシングを簡単に扱えるようになります。リクエスト自体は並列に来るため、そのリクエストを区別して扱うためのIDを管理するインメモリなStorageとして扱えます。10以前にもあったので、cls-hookedのようなライブラリで似たようなことができました。(cls-hooked経由)を使っています。モジュールのメソッドが扱えます。相当のことが可能になりました。したほうが良さそうです。Mapをサポートしています。IteratorからStreamを作成できるReadable.fromが追加されています。Genrator関数などからStreamを手軽に作成できます。v12.17.0でStableになっています。次のようにテスト時に、テストしたい関数が実際に何度呼ばれることを期待するかをチェックできます。v12.16.0で追加されています。github.com/sponsors/azu3人がコメントZennエンジニアのための情報共有コミュニティAboutZennについて運営会社お知らせ・リリースGuides使い方Publicationよくある質問LinksTwitterGitHubメディアキットLegal利用規約プライバシーポリシ。