Node.js 16リリース:最高の概要





4月20日、Node.jsの新しい16バージョンがリリースされました。主な変更点の中には、JavaScriptエンジンV8のバージョン9.0への更新、Apple Siliconの組み込みバイナリ(バイナリ)、およびいくつかのAPIがありますが、まず最初に行います。



変更の完全なリストは ここにあります



Node.js 16は、「現在の」リリースとしてNode.js15に置き換わるものです。このステータスは、今後6か月間彼に残ります。その後、2021年10月に、Node.js 16は長期サポート(LTS)ステータスに移行します。 LTSステータスに移行すると、彼はコードネーム「ガリウム」を受け取ります。 リリースの



詳細は、Node.jsリリースワーキンググループリポジトリにあります。 ..。とりあえず、最高のニュースを見てみましょう。



V8をバージョン9.0にアップグレードする



V8 JavaScriptエンジンの更新は、パフォーマンスの向上であり、最新のJavaScript機能に対するNode.jsサポートを提供します。ちなみに、Node.js15はV8バージョン8.6を使用していました。



エンジンへの主な変更には、正規表現一致インデックスのサポート、および「スーパー」プロパティへの改善された(より高速な)アクセスが含まれます。



変更の完全なリストは ここにあります



適合性指数


一致するIDを使用すると、開発者は、一致(または複数の一致)がある場合に、正規表現でキャプチャグループの開始位置と終了位置(インデックス)を含むサブ配列の配列を取得できます。この配列は、matchオブジェクトの「indices」プロパティから利用できます。一致を見つけるために使用される正規表現には、「/ d」フラグが必要であることに注意してください。



const re = /(a)(b)/d //  .      /d

const m = re.exec('ab') //   

console.log(m.indices[0]) //   —   

// [0, 2]

console.log(m.indices[1]) //   —   

// [0, 1]

console.log(m.indices[2]) //   —   

// [1, 2]


      
      





「スーパー」プロパティへのアクセス


スーパープロパティへのアクセスは、組み込みのキャッシュシステムの使用と、TurboFanでの最適化されたコード生成によって改善されました(TurboFanはコンパイラであり、IgnitionはV8のコードの解釈を担当します)。V8開発者によると、スーパーへのアクセス速度は通常のプロパティへのアクセス速度とほぼ同じになっています。





軸「Y」-操作の数。軸「X」-通常のプロパティへのアクセス、「スーパー」プロパティへのアクセス(更新前)、「スーパー」プロパティへのアクセス(更新後)。



Stable Timers Promises API



Timers Promises APIは、「Promise」オブジェクトを返すタイマーの代替セットを提供し、util.promisify()の必要性を排除します



import { setTimeout } from 'timers/promises'

async function run() {

  const greet = await setTimeout(3000, 'Hi!')

  console.log(greet) // Hi!

}

run()


      
      





Timers Promises APIは、実験的な機能としてNode.js15で導入されました。これで、安定したインターフェイスのステータスを取得しました。



その他の新機能



リリースプロセスの性質上、「現在の」リリースには約2週間ごとに新しい機能が表示されます。このため、多くの機能がNode.js 15で利用可能でしたが、ランタイムにはまだ比較的新しいものです。



これらの可能性の中には次のものがあります。



  • Web CryptoAPI標準の実験的実装
  • npm 7(v7.10.0)
  • ノード-APIバージョン8
  • 基づいて実施AbortController安定AbortControllerウェブAPI
  • ソースマップv3の安定した実装(NODE_OPTIONS =-ターミナルのenable-source-mapsまたは.mocharc.jsonの{"enable-source-maps":true})
  • atob (buffer.atob(data)) btoa (buffer.btoa(data)), API (/ «Base64»)




Node.jsは、いくつかの異なるプラットフォーム用の組み込みバイナリを提供します。メジャーリリースごとに、最小限の機器セットが評価され、可能な限り拡張されます。



Node.jsの16は、第1のインラインバイナリがのためにリリースされます アップルシリコンIntel(darwin-x64)アーキテクチャとARM(darwin-arm64)アーキテクチャには別々のtarballが用意されていますが、macOSの「インストーラー」(.pkg)はマルチアーキテクチャのバイナリです。



Linuxベースのプラットフォームの場合、Node.js16を生成するための最小GCCレベル はGCC8.3です。



サポートされているツールとコンパイラの詳細については、 こちらをご覧ください



サポートの終了



Node.js開発者は、エコシステムの混乱につながる可能性のある変更の数を最小限に抑えようとします(Node.jsライブラリの作業を意味します)。このような変化を検出するために、 GITGM(金鉱のカナリア)が使用されます。



ただし、一部の機能は非推奨になりました。最も重要なもののいくつかは、process.binding( 'http_parser')やprocess.binding( 'url')など、一部のカーネルモジュールのprocess.bindings()へのアクセスです。



新しいメジャーリリースは、Node.js(寄稿者および共同作業者)の改善とさらなる開発に関心のある多くの人々の努力の結果であることに注意してください。また、本番用の新しいリリースを準備するために、多くの作業が行われます。 Node.jsビルドワーキンググループ






当社の サーバーは、node.jsを使用した開発に使用できます。



上記のリンクを使用するか、バナーをクリックして登録すると、任意の構成のサーバーをレンタルした最初の月が10%割引になります。






All Articles