2012年3月15日、Node.jsの安定版シリーズであるv0.6系の最新アップデートとなる「v0.6.13」が公開されました。
今回のリリースでは、Windows環境における安定性の向上と、同梱されているパッケージマネージャーであるnpmのバージョンアップが主な変更点となっています。
開発チームはファイルシステムの操作やネットワーク通信の基盤となるライブラリの修正に注力しており、開発環境の改善が進められました。
Windows環境における安定性の向上
WindowsプラットフォームでNode.jsを利用するユーザーにとって、今回の更新は非常に重要な修正を含んでいます。
低レイヤーのI/O処理を担うlibuvにおいて多くのテスト修正が実施され、OS固有の細かな不具合が解消されました。
エラーハンドリングとクラッシュの修正
具体的には、ファイル記述子が負の値をとる際に発生していた uv_guess_handle のクラッシュ問題が解決されています。
また、EBUSY や ENOTEMPTY といったエラーの再マッピングが行われ、エラーハンドリングがより正確になりました。
さらに、Windows環境でのファイルシステムエラーにおいて システムコールがエラー情報に含まれる ようになり、トラブルシューティングが容易になっています。
npm 1.1.9への更新と新機能
開発ワークフローに欠かせないnpmは、最新のバージョン1.1.9へとアップデートされました。
この更新には node-gyp 0.3.5 へのアップグレードが含まれており、 binding.gyp を含むパッケージの自動ビルドがサポートされています。
パッケージ管理の柔軟性向上
package.json において os フィールドや cpu フィールドが新たにサポートされ、特定の環境に依存するパッケージの定義が容易になりました。
ネットワーク面では、レジストリへのリクエストにおいて https と http を跨ぐリダイレクトが適切に処理されるよう改善されています。
さらに、キャッシュ制御のための cache-max および cache-min 設定が追加され、オフラインでの利便性も向上しました。
OS固有の修正とプラットフォーム対応
Linux環境においても、特定のカーネルバージョンとの不整合によって fs.watch で ENOSYS エラーが発生する問題が修正されました。
これにより、異なるディストリビューション間でのファイル監視機能の信頼性が向上しています。
以下の表は、今回のアップデートにおける主要な構成要素をまとめたものです。
| 項目 | 内容 |
|---|---|
| リリース日 | 2012年3月15日 |
| バージョン | v0.6.13 (Stable) |
| npmバージョン | 1.1.9 |
| node-gypバージョン | 0.3.5 |
コードによる新機能の確認
新しくサポートされた package.json の os フィールドの設定例を確認してみましょう。
{
"name": "my-platform-specific-app",
"version": "1.0.0",
// サポートするOSを指定可能になりました
"os": [
"linux",
"darwin"
],
// サポートするCPUアーキテクチャを指定します
"cpu": [
"x64",
"ia32"
]
}
この設定により、条件に合致しない環境でのインストールを制限することが可能になります。
まとめ
Node.js v0.6.13は、Windows環境での安定稼働を支えるバグ修正と、パッケージ管理をより高度にする npm 1.1.9の統合 が中心のアップデートです。
特にWindowsユーザーや、ネイティブアドオンを多用する開発者にとって、信頼性を高めるための重要なステップとなります。
安定版を利用しているユーザーは、各種修正の恩恵を受けるために、公式サイトのドキュメントを確認した上でアップデートを行うことをお勧めします。
