Node.js のパッケージ管理ツール npm の作り方と package.json の使い方

phi phi on Node.js

前回 nvm を使った Node.js, npm のインストール方法 について紹介しました.

今回は Node.js のパッケージ管理ツール npm の使い方と packcage.json の活用方法について紹介します.

npm の使い方をマスターすれば, 自作の Node.js パッケージを
公開したり, Node.js を使ったプロジェクトをキレイに管理できます.

ぜひ参考にしてください.

npm

npm ってなに?

npm とは Node Package Manager の略で Node で
作られたパッケージモジュールを管理するためのツールです.

基本 Node.js をインストールすれば一緒にインストールされます. ターミナル or コマンドプロンプトで $npm -v を実行するとバージョンが表示されるのが分かるかと思います.

Python でいう easy_install, もしくは Ruby でいう gem のようなものだと思ってもらえれば良いと思います.

公式サイト

nvm と紛らわしいですが,

  • nvmNode Version Manager の略で Node.js 自体をバージョン管理するツール
  • npmNode Package Manager の略で Node.js 用に作られたパッケージモジュールを管理するツール

と覚えれば分かりやすいかと思います.

npm の使い方

npm は, npm コマンドを介して実行します.

パッケージをインストール

超簡単です. 下記のようにパッケージ名を指定するだけです.

$npm install パッケージ名

これで実行した階層に node_modules というフォルダが作成され, その中にインストールされます.

また -g オプションを付ける事でグローバルインストールすることができます. グローバルインストールしたパッケージは全てのプロジェクトで使えるようになります.

$npm install -g パッケージ名

express や grunt, coffee-script といったコマンドがサポートされていて
よく使うものは -g オプションを付けてインストールするのをオススメします.

パッケージのアンインストール

パッケージのアンインストールは uninstall オプションで行います.

$npm uninstall パッケージ名

グローバルパッケージも同様です.

$npm uninstall -g パッケージ名

インストール済のパッケージのリストを表示

インストール済のパッケージのリストを表示するには 下記のコマンドを実行します.

$npm list

こちらもグローバルオプションを使用することができます.

$npm list -g

パッケージの情報を表示する

npm に登録されているパッケージの情報を得るには
下記のコマンドを実行します.

$npm info パッケージ名

ズラーッとパッケージの情報が表示されるかと思います.

他にも色々とあるので遊んでみてください.

package.json との連携

npm は package.json という名前のファイルを作り,
連携することでプロジェクト管理や, 環境のセットアップを簡単に行うことができます.

package.json を作る

自分でテキストエディタを使って作っても良いのですが, npm でサクッと必要事項のみを記述した json ファイルを作ることができます.

下記のコマンドを実行すると対話式で プロジェクト名やユーザー名, バージョン番号, その他諸々聞かれます.

$npm init

入力し終えると package.json というファイルが 出力されているのが分かるかと思います.

これは, publish, つまり npm 公式サイトに登録する際に 使われる情報にもなります.

依存関係のあるパッケージを登録する

Node.js で開発する際, 外部のパッケージと依存関係が出来てしまうことが
多々あります.

それを丸ごと自分のプロジェクトに含めちゃうのはイケていません. ライセンスの関係もありますし, データも増えてバージョン管理も面倒です.

そういった際にも npm × package.json が活躍します.

npm 経由でパッケージインストールする際に --save, もしくは --save-dev というオプションを付けます.

$npm install hoge --save-dev

すると, package.json の dependencies, もしくは devDependencies に バージョン付きで依存関係のあるパッケージが登録されます.

依存関係のあるパッケージを一括インストール

上記で package.json に依存関係のあるパッケージを登録する方法について 紹介しましたが, これだけでは意味がありません.

他の人が開発環境をセットアップする際に, 依存関係のあるパッケージをインストールする必要があります.

そういった機能も npm が用意してくれちゃっています. しかも超簡単♪ package.json がある階層に移動して, パッケージ名を省略してインストールするだけです.

$npm install

これで, package.json の dependencies, devDependencies に記述されている パッケージを一括でインストールしてくれます.

git で Node.js 開発を管理する際の流れ

よく使う方法としては, node_modules を .gitignore に記述しといて 関連パッケージは必ず --save-dev を付けてインストールする.

git には package.json をアップするので, 他の開発者は clone で
落ちてきた pakcage.json を見て npm install で環境構築って感じですかね.

私はこんな感じで開発しています.

自作の Node Module を npm に登録する

これは以前別エントリーとして紹介したので良かったらこちらを参考にしてください.

View

他にも良い方法だったり, 面白い使い方などありましたらご連絡くださいな♪