npmの使い方
npmとは
node.jsのパッケージ管理をするやつ。
これがないと話にならない。
インストール
私はコマンド一発で出来た。
環境はmac osX
[code]
$ curl -0 -L http://npmjs.org/install.sh | sudo sh
[/code]
これで特にエラーが出なければ完了。
ただし、パスを通す必要があったかも...
使い方
基本的には欲しいパッケージ名を調べてinstallするだけ。
削除もパッケージ名にuninstallする。
さらにプロジェクトとして管理したりしたい場合は設定ファイルが必要でそれを生成するコマンドである init、インストールされているパッケージ確認の npm listなどがある。
パッケージのインストール
普通にインストール
カレントディレクトリのnode_modules以下にインストールするので、そこのディレクトリ以下でしか扱えないので注意。
[code]
$ npm install パッケージ名
[/code]
グローバルでインストール
どのプロジェクトでもどこからでも扱えるようにパッケージをインストールする。
[code]
$ npm install -g パッケージ名
[/code]
プロジェクト(package.js)に依存関係を登録しながらインストールする
そのプロジェクトでのみ扱えるようにインストールしつつ、依存関係を登録するので後でもっかいやり直すとか他人に環境を構築させる時とかに便利になる。
[code]
$ npm install パッケージ名 --save
//こっちはdevelop環境でのみインストールさせるやつ
$ npm install パッケージ名 --save--dev
[/code]
二つ目の --save--dev はdeveloper環境構築する時にインストールしたいパッケージを登録したい時につかうそうだけど
最初はプロジェクト管理するなら --save で良いと思う。
依存関係のパッケージ全てをインストール
プロジェクトのpackage.jsに依存するパッケージが登録されている場合一括で全部登録するやり方。
[code]
$ npm install
[/code]
単純に引数を省くだけ。
パッケージのバージョン指定でインストール
確かパッケージ名の後ろに@バージョンで出来たと思う(未検証)
[code]
$ npm install パッケージ名@バージョン
$ npm install gulp@3.8.11 [/code]
パッケージのアンインストール
普通にアンインストール
これだけじゃpackage.jsから削除されないし、グローバルのも削除できないので注意する。
[code]
$ npm uninstall パッケージ名
[/code]
グローバルでアンインストール
グローバルでインストールされたパッケージをアンインストール出来るが、こちらもpackage.jsから削除されない。
[code]
$ npm uninstall -g パッケージ名
[/code]
プロジェクト(package.js)の依存関係も削除しながらアンインストールする
カレントディレクトリのpackage.jsの依存関係も削除できるので、必要があれば。
[code]
$ npm uninstall パッケージ名 --save
//こっちにもdev版とかある $ npm uninstall パッケージ名 --save--dev [/code]
プロジェクトとかで必要な設定ファイルを生成する
必要なディレクトリを作成してその中でinitするだけ。
[code]
$ mkdir test_project
$ cd test_project
$ npm init
[/code]
作業する時は最初にやっておくの癖を付けてパッケージをインストールする時は --save 付けると環境を元に戻す時とかに便利そう
インストールされているパッケージの一覧
カレントディレクトリにインストールされているパッケージを確認とグローバルがあるっぽい。
まだ他にもオプションがありそうだけど
ローカルインストールされているパッケージの確認
[code] $ npm list [/code]
グローバルインストールされているパッケージの確認
[code] $ npm -g list [/code]
まだ試してないけど見つけたやつ
べつの記事とかでちらほら見かけたやつ
[code]
//npm uninstallと同じ事が出来るらしい
$ npm rm
//npm listと同じ挙動っぽい? $npm ls [/code]
終わり
node.jsも勢いがあって仕事でも使い始めてるので忘備録として。
ただ、ここら辺なら参考になる記事はたくさんあるけど、より実務に使えるような内容はまだ英語ドキュメントしかないので、英語苦手な学の無い私では色々厳しいものはあると感じてる。。。
参考になった記事達は
http://unageanu.hatenablog.com/entry/20150308/1425779692
http://hblog.glamenv-septzen.info/entry/2015/03/22/233241