ノード15対ノード16


2021年4月20日、OpenJSは最新のメジャーバージョンのノードをリリースしました.ノード16 .
この偶数のリリースで、V 8エンジン、新しいアップルシリコンプロセッサーの支持と安定したタイマー/約束APIへのいくつかの変化を見ます.また、このバージョンの長期的なサポートを見ることを期待することができます.

ハイレベル変更


「偶数」対「奇数」リリース


偶数のリリースとして、我々はノード16が長期的な支持ステータスに移動するのを見ることができます.そして、それは重大なバグが合計30ヵ月の間固定されると保証します.また、ノード16が偶数のリリースであるので、ノード15は公式にサポートされなくなっている.
ノードの価値観の風変わりなのは、奇妙な番号のリリース-文字通り奇数の終わりを終わらせる-次の意味のバージョンのリリースライン発送とすぐに人生の終わりに行くことです.NodeSourceによると、すべてのものノード、意味論的なバージョン、または、それらが呼ばれるsemversをカバーするブログは以下を含みます
  • メジャーリリース:メジャーリリースは、バージョンからバージョンへの互換性のないAPIの変更のためです.メジャーリリースには、通常マイナーまたはパッチリリースとして含まれる変更を含めることができます.
  • マイナーリリース:マイナーリリースでは、後方互換性のある機能の変更が含まれます.マイナーリリースでは、通常、パッチのリリースとして含まれる変更を含めることができます.
  • パッチは、非破壊のバグ修正とセキュリティパッチを含みます.逆に、偶数のリリースは長期的なサポートになります.JSプロジェクトの延長期間.
    サポートの観点から、それはあなたがビジネスしているノードのバージョンのバージョンが実行されている意味を理解する価値がある.

    タイマ/約束API


    バージョン16.0から、タイマ/約束APIは、experimentalからstableまで公式に動きます.このAPIは単にPromiseオブジェクトとしてタイマーを定義する方法を与えます.
    import { setTimeout } from 'timers/promises';
    
    const main = async () => {
      console.log(new Date().toTimeString());
      await setTimeout(1000);
      console.log(new Date().toTimeString());
    }
    
    main();
    
    以下の例を正しく実行するawaitPromiseから返され、以下のように出力します.
    16:45:41 GMT-0700 (Pacific Daylight Time)
    16:45:42 GMT-0700 (Pacific Daylight Time)
    

    V 8 9.0にアップグレード


    V 8 JavaScriptエンジンはV 8 9.0にアップデートされ、ノード15の8.6からアップデートされる.このアップグレードでは、いくつかのパフォーマンスの改善、およびEcmasScript Regexpマッチインデックスがあります.これは特定のマッチオブジェクトの新しいsetTimeoutプロパティを通じて文字列の開始と終了インデックスを提供します.
    const matchObj = /(Node) (16)/d.exec('Node 16');
    
    上で定義されたマッチオブジェクトを与えられて、私たちは.indicesをロギングして、各々のマッチのスタートと終わりインデックスを概説するとき、以下を得ます.
    [[0, 7], [0, 4], [5, 7], groups: undefined]
    

    アップルシリコンサポート


    アップルの新しいアップルシリコンM 1チップをサポートするために、MacOSインストーラ(. pkg)は、マルチアーキテクチャバイナリとして出荷されます.これは、ノード16が新しいM 1 MacOSで動作することを意味します.

    変更の中断


    ノード15からのNone.

    結論


    ノード16はすぐに次の30ヶ月間サポートされ、同時にノード15のサポートを中止します.これは、これがノード15の上で現在それらのために「必須である」アップグレードをします、そして、確かに何かが最も長い間の現在のLTSバージョンにとどまるためにノード14から来ることを考慮します.
    このポストはもともとthis blogで、devops consulting servicesをカバーしています.