npm
node package manager
概要
npm <command> [args]
バージョン
2.1.7
説明
npm は JavaScript プラットフォームである Node のパッケージ管理機構です。 npm にモジュールを入れておくことで Node はこれを見つけ、依存性衝突を効率的に 管理することが出来ます。
様々な利用方法に対応して、非常に多くの設定が可能です。 多くの場合は公開(publish)し、見つけられ、インストールして Node のプログラム作成に用いられるでしょう。
npm help
とすると、コマンドを一覧できます。
はじめに
npm を手に入れるときは恐らく、モジュールをインストールしたいときでしょう。
npm install blerg
のコマンドで最新の"blerg"モジュールを手に入れることが出来ます。
npm-install(1)
で詳細を確認してください。機能豊富なコマンドです。
npm search
で利用可能な全てのモジュールを確認出来ます。(訳注:既に5万近いパッケージを抱えているため、取得に30秒ほどかかります。)
npm ls
で、あなたのインストール済モジュールを確認出来ます。
依存性について
あるパッケージが git 上の他のパッケージ URL を参照している場合、npm は先に インストールされた git 上のパッケージに依存します。
npm がインストールしようとしたパッケージのうちひとつが node のネイティブモジュールで C++ の コンパイルを必要とする場合、npm は node-gyp をそのタスクに利用します。 Unix システムでは node-gyp は Python を必要とし、GCC のように make とビルドチェーンを実行します。Windows においては、 Python と Microsoft Visual Studio C++ が必要です。Python 3 では node-gyp は利用できません。もっと詳しい情報を知るには node-gyp リポジトリ と node-gyp Wiki を見てください。
ディレクトリ
npm-folders(5)
で、npm がどのディレクトリにモジュールを保存するかわかります。
npm は動作時に2つのモードがあることをわかっていてください:
- グローバルモード:
npm はパッケージをprefix/lib/node_modules
(訳注:prefix は大抵の場合 /usr/local, node の process.installPrefix と同じです。) の下に配置し、実行モジュール(訳注:package.json中 bin項目で指定したもの) をprefix/bin
の下に配置します。 - ローカルモード:
npm はパッケージを カレントワーキングディレクトリ(訳注:プロセスが認識している現在ポジション) 下の./node_modules
に配置します。 そして実行モジュールを./node_modules/.bin
に配置します。
既定はローカルモードです。
--global
または
-g
を付けて実行することでグローバルモードで動作させることが出来ます。
開発者の利用方法
npm を開発者、モジュール公開者が利用する倍、以下のトピックを参照して下さい:
- json: package.json ファイルを作ります。
package.json(5)を参照下さい。
. - link: 変更の度にインストールしなくて良いように現在のソースコードと Node をリンクさせて下さい。
npm link
コマンドで実現出来ます。 - install: シンボリックリンクを必要としない場合、良い方法です。 特に
npm install
コマンドを使って他の人が開発したモジュールをインストールできます。 - adduser: アカウントを作成したり、ログインしたりします。認証情報 はユーザー設定ファイル(user config file)に保存されています。
- publish: ソースコードをレジストリにアップロードするときは
npm publish
コマンドを使って下さい。
設定
npm は非常に多くの設定が可能です。設定方法について5つご紹介します。
- コマンドラインスイッチ:
--key val
コマンドで設定が可能です。全てのキーは、真偽値のキーであっても ひとつ値を受け入れます。(パーサーは値を解釈する時にそのオプションが何を 意味するかを把握しません。)もし値をセットしない場合、そのオプションキーには真偽値のtrue
がセットされます。 - 環境変数:
どのキーもnpm_config_
の接頭子を付けた名前の環境変数で値を設定出来ます。 例えばexport npm_config_key=val
といった具合です。 - ユーザー別設定:
$HOME/.npmrc は iniフォーマット の設定ファイルです。 もしあれば、解釈されます。CLIもしくは環境変数にuserconfig
オプションが設定されていれば、 そのファイルが代わりに利用されます。 - グローバル設定:
../etc/npmrc (node からみて実行可能で、既定では /usr/local/etc/npmrc) ファイルが我あれば、解釈されます。CLIもしくは環境変数にglobalconfig
オプションが設定されていれば、 そのファイルが代わりに利用されます。 - 既定値:
npm の設定既定値は lib/utils/config-defs.js にあります。変更すべきではありません。
npm-config(7)
で多彩な設定情報を確認出来ます。
寄与
パッチ歓迎!
- ソースコード: もしプログラムを提出したい場合は
npm-coding-style(7)
を一読下さい。気に食わないものであったとしても、則っていただく必要があります。 - ドキュメント: もしドキュメントに誤りを見つけた場合、"doc" フォルダの markdown ファイルそのものを修正ください。 (man ページを出力した時のことを考慮する必要はありません。)
npm プロジェクトへの寄与者は
package.json
ファイルに記載されています。このリストは
npm view npm contributors
コマンドで簡単に確認可能です。
もし、npm プロジェクトに興味はあるけれど何をしたらよいのか分からない場合は 問題リスト(issues list)を確認した上で、メーリングリストでお尋ねください。
バグを見つけたら
問題がありましたら、こちらに報告ください:
npm コマンドによる予期せぬ動作の 全て を含めて下さい。
npm-debug.log
を提供していただけると幸いです。
isaacs氏の #node.js における活動は irc://irc.freenode.net でも確認出来ます。gist や email で最新の情報を得ることは間違いありません。
開発者
Isaac Z. Schlueter :: isaacs :: @izs :: i@izs.me