Node.jsの標準パッケージマネージャーであるnpmのバージョン2.0がリリースされた。新機能のscoped packageはプライベートなNode.jsモジュールの管理を、まるでパブリックリポジトリの一部であるかのように簡単にしてくれる。また、この新バージョンには新しいリリースプロセスが導入され、信頼性の改善も含まれている。
npm 2.0リリースノートによると、scoped packageは「npm 2の目玉機能」だ。scoped packageは他のパッケージ同様の名前と、スコープを持つ。スコープを使うことで、次のようにパッケージを特定することができる。
@somescope/somepackagename
スコープは関連するパッケージをまとめる手段を提供する。パブリックパッケージが node_modules_base_dir
にインストールされるのに対して、同じスコープに属するパッケージはすべて同じディレクトリ node_modules_base_dir/@myScope
にインストールされる。スコープの興味深いところは、プライベートレジストリに関連付けできることだ。
npm login --registry=http://reg.example.com --scope=@myco
このように関連付けることで、パブリックなnpmレジストリと1つ以上のプライベートレジストリにあるパッケージをシームレスに組み合わせて使えるようになる。
scoped packageの他、バージョン2.0に向けた作業の多くは競合状態の修正に投じられた。ただし、修正が待たれる既知の競合状態が少なくとももう1つ残っている。とはいえ、今回なされた作業は「常に正しく動作する可能性が高いだろう」。
最後に、npm開発チームはdist-tagsに基づく新しいリリースプロセスを公開した。簡単に言ってしまうと「公開されるバージョンが毎週少なくとも2つある。すなわち、万人向けのnpm@latestと、新しいものを試したい人もしくはnpmのテストを助けたい人向けのnpm@nextだ。」
NPM 2.0はnodeのバージョン0.8以降を必要とし、そのバージョニングにはsemverのバージョン4.0を用いている。