今日、Node.js v10(LTS)とNPM v6の同時リリースが行われました。 このイベントは特に重要であり、プラットフォーム全体の新しいマイルストーンを示し、Node.jsコードベース全体に多くの重要な変更と改善をもたらします。 新しい暗号化アルゴリズムのサポートが登場しました。
Node.js
10月のNode.jsの10番目のバージョンには、2021年に終了する長期サポートが提供されます。
1. N-API
N-APIのテストは終了しており、現在は安定しています。 N-APIを知らない人にとっては、これはC ++コードとNode.js内部の間にあるレイヤーです。 現在、バージョンを変更するときに、モジュールを書き換える必要はありません。 ネイティブモジュールを使用する開発者は、Node.jsのバージョンを簡単に切り替えることができるようになりました。 そしておそらく、作成者がその複雑さのためにサポートを拒否した放棄されたC ++モジュールが少なくなるでしょう。
また、Node.jsはJS仮想マシンから独立しているため、Chakra Coreを使用してNode.jsを内部でリリースできるようになります。
OpenSSL 1.1.1
このバージョンにはOpenSSL 1.1.0のサポートが含まれています。現在、開発者はChaCha20による暗号化とPoly-1305による認証を利用できます。 また、OpenSSLはN-APIを介して接続されるようになりました。つまり、バージョン1.1.1のリリースにより、TLS 1.3(TLSの新しい簡易バージョンおよび加速バージョン)が4月下旬に利用可能になります。
非同期ループ
前に書いたように、このバージョンでは非同期ループと新しいReadStream動作が利用可能になります。 つまり、promiseを返すイテレーターを循環させて、自動的に許可を待つことができます。
for await (const chunk of fs.createReadStream(filepath)) { // ... }
エラーコード
Error#code
コードが導入されました。これにより、メッセージテキストにバインドしてタイプを判別できなくなります。 そのため、エラー処理がより予測可能になります。
v8を6.6に更新
バージョンv8は6.6に更新されました。 多くの革新もあります:
-
Array#reduce
高速化Array#reduce
、特に非同期コードと非同期ループの実行が最大10倍にArray#reduce
されます。 -
String#trimStart
、String#trimEnd
など、いくつかの新しいメソッドが登場しString#trimEnd
。 - 無条件のtry-catchブロック:
try { doSomethingWrongWay(); } catch { // !.. }
- キャッシュとコードの読み込みを改善し、ASTを並列スレッドで構築します。
- あきらめる
詳細については、v8ブログをご覧ください。
fsモジュールによるpromiseの実験的サポート
約束はfs
モジュールに追加されます。 実験的にプロパティでpromises
ながら。
その他の改善
パフォーマンス測定の機能サポートが改善されました。 そして、はるかに。
NPM
公式発表 [EN]。
セキュリティプラットフォーム
6番目のバージョンでは、NPMがモジュールのセキュリティを処理しました。 パッケージをインストールする際の脆弱性に関する警告と、新しいnpmメソッドのサポートがあります。
npm audit
NPMは既知の脆弱性のデータベースを自動的に走査し、依存関係の中に脆弱なモジュールが見つかった場合に警告します。
性能
パッケージマネージャーは、以前のバージョンの最大17倍の速度を実現できます。 また、すでに加速されたnpm ci
は、2〜3倍速く動作し始めました。
Webhook管理
2年前、NPMは特定のパッケージに対する変更の通知を受信するためのwebhookサポートを導入しました。 以前は、サードパーティのwombatモジュールが制御に使用されていましたが、現在ではwebhookのサポートが組み込まれています。
その他
ロックファイルに自動競合解決がありました。 また、パケットの整合性を判断するために、より多くのデータが出力されるようになりました。
設置
Node.jsは、 公式Webサイト (npm 5.6で出荷)からダウンロードできます。
NPMをインストールします。
npm i -g npm@6