npmはnode.jsパッケージマネージャーです。 これを使用して、モジュールと依存関係を管理します。
私のお気に入りのすべてのnpmコマンドの小さなチートシート:
- Npmインストール
- Npmアップデート
- npmでパッケージを検索する
- パッケージ情報を表示する
- ローカルパッケージのインストール
- アプリケーションにパッケージをインストールする
- グローバルインストールとローカルインストールの違いを理解する
- グローバルパッケージのインストール
- ローカルにインストールされたパッケージの削除
- グローバルにインストールされたパッケージの削除
- 特定のパッケージバージョンのインストール
- Githubを使用したモジュールのインストール
- パッケージをローカルに関連付ける
- 複数のアプリケーションのローカルパッケージの関連付け
- アプリケーションパッケージのリンク解除
- システム内のパッケージのリンク解除
- 新しいパッケージを作成する
- 新しいユーザーを追加
- パッケージをnpmリポジトリに公開する
- npmリポジトリからパッケージを削除する
- npmリポジトリでパッケージのアクセス許可を管理する
Npmインストール
curl https://npmjs.org/install.sh | sh
Npmアップデート
npmをアップグレードするにはいくつかの方法があります。 私が好む:
curl https://npmjs.org/install.sh | sh
または
npm install npm -g
npmでパッケージを検索する
npm search hook.io
ヒント: search.npmjs.orgを使用することもできます
2番目のヒント:検索するには、必要なパッケージの名前を知る必要があります(パッケージ名またはその説明に含まれる単語はすべて正常に見えますが、間違って翻訳されている可能性がありますか?)
パッケージ情報を表示する
npm view hook.io
ローカルパッケージのインストール
デモンストレーションのために、http-serverパッケージを取り上げましょう。
http-serverは、ノードのコアhttp.Serverクラスの周りの使いやすいラッパーを提供する、私たちが作成したパッケージです。 このモジュールは、APIがCLIバイナリと必要なnode.jsモジュールの両方を提供するため、良い例になります。
http-server-作成したパッケージは、node.jsの基本的なhttp.Serverモジュールを使用するためのよりシンプルなインターフェースを提供します。 このモジュールは、バイナリCLIとnode.jsプラグインの両方にAPIを使用する良い例です。
npm install http-server
したがって、作業ディレクトリにhttp-serverをインストールします。
node_modulesに新しいフォルダーが表示されます。 今、あなたはそれに注意を払うことはできません。
アプリケーションにパッケージをインストールする
mkdir mynewapp/ cd mynewapp npm install http-server touch test.js
test.js
var HTTPServer = require('http-server'); var httpServer = new HTTPServer({ root: './public' }); httpServer.start();
スクリプトを実行する
node test.js
私たちのやり方に注意してください:require( 'http-server')? これはどんな魔法ですか? (著者はよくやった)
http-serverはnode.jsのベースモジュールではありません。 このパッケージをnpmからインストールしました。 Node.jsとnpmは対話し、node_modulesディレクトリからローカルモジュールを自動的に接続します。
グローバルインストールとローカルインストールの違いを理解する
デフォルトでは、npmは現在作業しているローカルディレクトリにすべてのパッケージをインストールします。 これは正しいです。 以前のパッケージ管理システムで作業したことがある場合、これは少しわかりにくいかもしれません。
例:
mkdir anotherapp/ cd anotherapp/ touch test.js
test.js
var HTTPServer = require('http-server');
スクリプトを実行します
node test.js
このエラーが発生します:
node.js:134 throw e; // process.nextTick error, or 'error' event on first tick ^ Error: Cannot find module 'http-server' at Function._resolveFilename (module.js:326:11) at Function._load (module.js:271:25) at require (module.js:355:19) at Object.<anonymous> (/Users/maraksquires/dev/nodeapps/anotherapp/test.js:1:80) at Module._compile (module.js:411:26) at Object..js (module.js:417:10) at Module.load (module.js:343:31) at Function._load (module.js:302:12) at Array.<anonymous> (module.js:430:10) at EventEmitter._tickCallback (node.js:126:26)
これは論理的であり、httpサーバーを「/ anotherapp /」ではなく「/ mynewapp /」にローカルにインストールしました。
この状況には2つの解決策があります。
a)パッケージを再度インストールしますが、新しいアプリケーションでローカルにインストールします
cd anotherapp/ npm install http-server
b)パッケージをグローバルにインストールします
npm install http-server -g
グローバルパッケージのインストール
パッケージをすべてのアプリケーションで使用できるようにする場合は、グローバルにインストールする必要があります。
npm install http-server -g
-gフラグは、http-serverがグローバルにインストールされ、すべてのアプリケーションからアクセス可能であることを意味します。
これで、どのアプリケーションでもrequire( 'http-server')を呼び出すことができます。
さらに、http-serverパッケージには独自の実行可能ファイルがあるため、このファイルもhttp-server実行可能ファイルとしてインストールされ、コマンドで使用できます。
これで、コマンドを簡単に実行できます。
http-server
ローカルにインストールされたパッケージの削除
npm uninstall http-server
グローバルにインストールされたパッケージの削除
npm uninstall http-server -g
特定のパッケージバージョンのインストール
npm install http-server@0.3.0
Githubを使用したモジュールのインストール
重要です。 場合によっては、使用したいが、まだnpmに公開されていないパッチ、フォーク、またはブランチがあります。 幸いなことに、ほとんどのnpmモジュールのソースコードはwww.github.comでも入手できます。
git clone git://github.com/nodeapps/http-server.git cd http-server/ npm link
これで、http-serverのクローンバージョンがローカルに接続されました。
パッケージをローカルに関連付ける
npmパッケージを含む別のディレクトリがある場合、そのローカルリンクを作成できます。 これは、npmリポジトリでパッケージを公開したくない場合に役立ちます。
cd http-server/ npm link
ローカルバージョンでは、ローカルマシン用にhttpサーバーが「接続」されて作成されます。 (接続は「コピーと貼り付け」として作成されます。最初から目的のディレクトリに移動して「コピー」を作成し、次に目的のディレクトリに移動して「貼り付け」を行う必要があります。このモジュールの貼り付け)
複数のアプリケーションのローカルパッケージの関連付け
前に見たように、npmはデフォルトのローカルディレクトリにパッケージをインストールします。 したがって、npmリンク(リンク)はほぼ同じように機能します。
mkdir newapp/ cd newapp/ npm link http-server
httpサーバーから新しいアプリnewappへのリンクが作成されたことを示します。 npm link http-serverを実行していなかった場合、欠落しているモジュールに関するエラーを受け取りました。 (そして、ここに私が上で書いた「ペースト」があります。リンクを作成するロジックを理解する必要があります)
アプリケーションパッケージのリンク解除
cd newapp/ npm unlink http-server
(ここでは、このアプリケーションの「貼り付け」をキャンセルするだけです)
システム内のパッケージのリンク解除
cd http-server/ npm unlink
(ここで、このパッケージの「コピー」をキャンセルします)
新しいパッケージを作成する
mkdir mypackage/ cd mypackage/ npm init
(パッケージを作成することは、1つのコマンドでこのような単純なタスクではなく、 別の記事で詳しく読むことができることを自分で注意したいだけです)
新しいユーザーを追加
npm adduser
パッケージをnpmリポジトリに公開する
cd mypackage/ npm publish
npmリポジトリからパッケージを削除する
npm unpublish http-server
npmリポジトリでパッケージのアクセス許可を管理する
公開されたパッケージに対する他のユーザーのアクセス権を設定できます。
npm owner add marak http-server npm owner rm marak http-server npm owner ls http-server
package.json形式とnpmを使用した複雑な作業の詳細については、Charlie Robbinの記事blog.nodejitsu.com/package-dependencies-done-rightをご覧ください。