2012年3月15日、Node.jsの安定版シリーズであるv0.6系の最新アップデートとなる「v0.6.13」が公開されました。

今回のリリースでは、Windows環境における安定性の向上と、同梱されているパッケージマネージャーであるnpmのバージョンアップが主な変更点となっています。

開発チームはファイルシステムの操作やネットワーク通信の基盤となるライブラリの修正に注力しており、開発環境の改善が進められました。

Windows環境における安定性の向上

WindowsプラットフォームでNode.jsを利用するユーザーにとって、今回の更新は非常に重要な修正を含んでいます。

低レイヤーのI/O処理を担うlibuvにおいて多くのテスト修正が実施され、OS固有の細かな不具合が解消されました。

エラーハンドリングとクラッシュの修正

具体的には、ファイル記述子が負の値をとる際に発生していた uv_guess_handle のクラッシュ問題が解決されています。

また、EBUSYENOTEMPTY といったエラーの再マッピングが行われ、エラーハンドリングがより正確になりました。

さらに、Windows環境でのファイルシステムエラーにおいて システムコールがエラー情報に含まれる ようになり、トラブルシューティングが容易になっています。

npm 1.1.9への更新と新機能

開発ワークフローに欠かせないnpmは、最新のバージョン1.1.9へとアップデートされました。

この更新には node-gyp 0.3.5 へのアップグレードが含まれており、 binding.gyp を含むパッケージの自動ビルドがサポートされています。

パッケージ管理の柔軟性向上

package.json において os フィールドや cpu フィールドが新たにサポートされ、特定の環境に依存するパッケージの定義が容易になりました。

ネットワーク面では、レジストリへのリクエストにおいて httpshttp を跨ぐリダイレクトが適切に処理されるよう改善されています。

さらに、キャッシュ制御のための cache-max および cache-min 設定が追加され、オフラインでの利便性も向上しました。

OS固有の修正とプラットフォーム対応

Linux環境においても、特定のカーネルバージョンとの不整合によって fs.watchENOSYS エラーが発生する問題が修正されました。

これにより、異なるディストリビューション間でのファイル監視機能の信頼性が向上しています。

以下の表は、今回のアップデートにおける主要な構成要素をまとめたものです。

項目内容
リリース日2012年3月15日
バージョンv0.6.13 (Stable)
npmバージョン1.1.9
node-gypバージョン0.3.5

コードによる新機能の確認

新しくサポートされた package.jsonos フィールドの設定例を確認してみましょう。

JSON
{
  "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ユーザーや、ネイティブアドオンを多用する開発者にとって、信頼性を高めるための重要なステップとなります。

安定版を利用しているユーザーは、各種修正の恩恵を受けるために、公式サイトのドキュメントを確認した上でアップデートを行うことをお勧めします。