200
203

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

勉強メモ/npmの使い方(node.js=v0.11.16, npm=2.3.0, 2015-03時点)

Last updated at Posted at 2017-02-12

2015-03時点での、npmの使い方の勉強メモ。

勉強環境:

$ node --version
v0.11.16

$ npm --version
2.3.0

参考:

パッケージインストールの考え方:

  • ローカルインストール
    • カレントディレクトリの node_modules 以下にパッケージをインストール。
    • 開発プロジェクト固有で依存するパッケージをインストールしたい時に使いやすそう。
  • グローバルインストール
    • システム共通の場所にパッケージをインストール。
    • ビルドツールなど、システム全体で利用するツール・コマンド類をインストールしたい時はこっちも便利。

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

ローカルインストールの流れ

  1. npm initpackage.json を生成しておく(オプション。開発プロジェクト固有のパッケージインストール前提になるなら、最初にやっておいたほうが良いかも)。
    • 名前, バージョン, 説明, Gitリポジトリ, キーワード, ライセンスなどひと通り聞かれる。全部デフォルトのままにして後から編集しても良い。
  2. npm install パッケージ名 でインストール。
    • デフォルトでカレントディレクトリの node_modules 以下にパッケージをインストール。
    • package.json に記録しておきたければ、npm install パッケージ名 --save を実行。
    • --save-dev / --save-optional というオプションもある。 --save との違いについては後述

ローカルインストールしたパッケージを削除

  1. npm uninstall パッケージ名
    • package.json からも依存関係削除したければ、npm uninstall パッケージ名 --save(or --save-dev or --save-optional) を実行。
    • npm rm でも一緒。

インストールしたパッケージを確認

  1. npm list (or ls or la or ll) で、デフォルトだとローカルのパッケージ確認。設定でglobalインストールしたのも確認できるっぽい(今回は試さなかった)。

グローバルインストール/グローバルアンインストール

  1. npm install -g パッケージ名
  2. npm uninstall -g パッケージ名

--save / --save-dev / --save-optional の違い

  • --savepackage.jsondependencies に追記される。
  • --save-devpackage.jsondevDependencies に追記される。
  • --save-optionalpackage.jsonoptionalDependencies に追記される。

それぞれの違いだが、package.jsonがモジュールとして外部に公開し、他の人がnpm installした時に影響する。

他の人が npm install した時に、dependencies に指定したパッケージが全てインストールされる。

devDependencies に追記したものは開発時にのみ使うパッケージを指定するのに使う。そのパッケージの利用者にとっては不要で、開発者のみが使うため、利用者が npm install パッケージ名 するときはこの依存パッケージはインストールされない。もし devDependencies もインストールしたい場合は、--dev 設定を有効化(これはnpm installのオプションではなく、 npm help 7 config にあるようにnpmの設定である)して、npm install パッケージ名 --dev とする。

ただし、利用者がpackage.json含めたソースコード全体をgitなどからcloneして開発する = 開発者と同等の立場として、追加パラメータ無しで package.json のあるディレクトリで npm install とだけした場合は、開発者の立場になるわけなので、devDependencies もインストールされる。というか、依存関係は全てインストールされるらしい。 --production つければ、package.jsonのところで npm install --production なら devDependencies はインストールされない。

dependenciesdevDependencies の使い分けだが、パッケージやプロジェクトが実行時に必要となるのを dependencies に設定し、ビルド時だけしか使われないようなビルドツール・ライブラリなどは devDependencies に入れておくと良さそう。

optionalDependenciies に追記したものは、通常のnpm installでインストールされるが、インストールに失敗してもスルーされる。正直、使いドコロがよくわからない。

他にもdependencyの種類には何種類かあるため、package.jsonのドキュメントを参照のこと。

参考:

各種ファイルのパスについて

# 基本的な説明は `npm-folders(5)` 参照
$ npm help 5 folders

# ローカルインストール先のディレクトリ確認
$ npm root

# ローカルインストール先の、コマンドディレクトリ(bin)確認
$ npm bin

# グローバルインストール先のディレクトリ確認
$ npm -g root

# グローバルインストール先の、コマンドディレクトリ(bin)確認
$ npm -g bin

ソースコードを取得した後、package.jsonから依存関係をインストールしたい

$ ls
... package.json ...

$ npm install

dependencies, devDependenciesが両方インストールされる。devDependenciesを除外したい場合は npm install --production とする。

200
203
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
200
203

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?