npm(パッケージ管理ツール)の基礎を解説!
はじめに
npmって一体どのようなものなのか、どのように扱っていいのか分からないというnpm初心者の方に向けて、npmの基礎を徹底的に解説していきます。
さらに、インストール方法やよく使用されるコマンド・パッケージなどについても説明していきたいと思います。
それでは見ていきましょう。
npmについて
「npm」とは、「Node Package Manager」の略称で、2010年にリリースされたJavaScript開発者向けのパッケージ管理ツール。
また、自身が必要とするパッケージを検索したり、自身が開発したパッケージを共有したりできます。
Node.jsをインストールするとnpmもインストールされることから、npmとNode.jsは非常に関連性が高いです。
Node.jsについて
「Node.js」とは、サーバーサイド用のJavaScriptアプリケーションのプラットフォームです。
Node.jsの特徴とは?
Node.jsの主な特徴は以下の通りです。
- 非同期処理により処理が速い
- 「V8」エンジンを利用されているため処理が非常に速い
- シングルスレッドのためメモリ消費の効率が良い
Node.jsのメリット
Node.jsを使用するメリットは以下の通りです。
- 大量アクセスにも耐えることが可能かつ高速処理を実現
- メモリ消費量を抑えることが可能
- 読みやすいプログラムを設計することが可能
- フロントエンドからサーバーサイドに至るまでJavaScriptだけで記述可能
Node.jsにおけるnpmの役割とは?
Node.jsにおけるnpmの役割は以下の通りです。
- パッケージのインストール補助
- パッケージのバージョン管理
package.jsonについて
「package.json」は、npmを使用してパッケージをインストールする場合に、バージョン情報などを格納。
別開発環境で作業を行う場合やチームで同一環境を使用して開発する場合に便利なファイルです。
package.jsonはJSONファイルですので、自身でゼロから作ることも可能ですが、「inti」コマンドを使用することで容易に作ることも可能です。
npmの特徴や機能について
npmの特徴は以下の通りです。
- JavaScriptで書かれたプログラム
- node.jsパッケージ管理システム
- パッケージのバージョン管理・インストール補助に使用
- サーバーサイドで動く
npmの主な機能は以下の通りです。
- ヘルプ機能
- バージョン表示
- パッケージのインストール
- インストール済みのパッケージ一覧表示
- パッケージのアップデート
- パッケージのアンインストール
npmのメリットについて
npmを使用するメリットについて説明してきます。
オープンソースにしやすい
元々npmは、パッケージのコードを複数プログラマでオープンソースで管理することが可能なように生成されています。
npmに関して学習して使いこなすことが可能となれば、既存パッケージだけではなく、自身で制作しているコードをチームで共有しながら開発することが可能です。
インストール・アンインストールが容易
npmのインストールは「npm install」と入力してコマンドを実行するだけで、容易にパッケージをインストールすることが可能です。
また、アンインストールに関しても「npm uninstall」と入力してコマンドを実行するだけで、容易にアンインストールもできます。
npmのインストール方法について
npmは、Node.jsをインストールすれば利用することが可能です。
Mac・Windowsでのインストール方法を紹介していきます。
Mac
Macの場合は、下記のコマンドでインストール。
- # 最新版
- $ nodebrew install-binary iatest
- # 安定版
- $ nadebrew install-binary stable
万が一、「Warning:Failed to create the file」が表示された際には、下記のコマンドを実行して再びインストールのコマンドを実行しましょう。
- $ mkdir -p -/ .nodebrew/src
Windows
Windowsにnpmをインストールする場合は以下の通りです。
- 「https://nodejs.org/en/」からインストーラーをダウンロード
- ダウンロードしたインストーラーを実行
npm –version
上記のコマンドを実行して、npmがインストールしているか確認しましょう。
npmの使い方について
ここでは、npmの使い方について説明していきます。
パッケージをインストール
コマンドの中で、最も利用する頻度が多いのが「install」でしょう。
パッケージのインストールにはローカルインストールとグローバルインストールの2種類存在しますので、それぞれ説明していきます。
下記のように実行すると「Express」パッケージをローカルインストールすることが可能です。
- ?npm install express
コマンドとしては「npm install パッケージ名」と記述するだけですので、誰でも容易に記述することができます。
下記のように、「@」の後に続けてバージョンを書くと、目的のバージョンを直接指定してインストールすることが可能です。
- ?npm install express@4.17.1
上記のように実行すると「4.17.1」のバージョンをインストールすることが可能です。
パッケージのバージョン番号は「 . (カンマ)」で区切って表現しており、それぞれ「メジャー番号.マイナー番号.パッチ番号」という意味があります。
パッチ番号は、リビジョン番号やビルド番号とも呼び、それぞれ以下のような役割があります。
- 「メジャー番号」ユーザーエクスペリエンスといった大規模な仕様の変更
- 「マイナー番号」バグフィックスなどの小さい変更や機能の追加や削除
- 「パッチ番号」自動で発番されるなど使用方法の幅が広く、バグフィックスで使用されることもあります
「-g」オプションを付けることでグローバルインストールすることもできます。
グローバルインストールすることによって、PATHを指定する必要もなくコマンドを実行することができるようになります。
- npm install -g パッケージ名
ヘルプを表示
ヘルプを表示する場合は、下記の通りです。
- npm help
- npm help install
- npm help install -l
モジュールのアンインストール
モジュールのアンインストールは、下記のようにローカルディレクトリから行います。
- npm uninstall モジュール名
グローバルからアンインストールするには下記の通りです。
- npm uninstall -g モジュール名
npmリポジトリ検索
npmのリポジトリを検索する場合は、下記のように実行します。
- npm search キーワード
オプション
package.jsonファイルのパッケージ依存関係のタイプを、下記のように指定することが可能です。
- 「-p/–save-prod」デフォルト
- 「-D/–save-dev」開発環境
- 「-O/–save-optional」スキップ
- 「–no-save」パッケージ管理の除外
上記のオプションを使用してpackage.jsonに依存関係を保存する際に、下記のように2つの追加オプションフラグがあります。
- 「-B/–save-bundle」登録されていないパッケージ管理
- 「-E/–save-exact」バージョン固定
npmのコマンド一覧
npmのコマンド一覧を表にまとめてみたので見ていきましょう。
コマンド | 説明 |
npm –version | npmが入っているか確認 |
node -v | Node.jsが入っているか確認 |
npm inti | package.jsonを作成 |
npm install パッケージ名 npm i パッケージ名 | 指定したパッケージをインストール |
npm install –save パッケージ名 npm install -save パッケージ名 npm install -s パッケージ名 | インストールしたパッケージ情報を自動でpackage.jsonに書き込む |
npm install | パッケージ名を入力しないで実行するとpackage.json内容に従いパッケージをインストール |
npm uninstall パッケージ名 npm un パッケージ名 npm unlink パッケージ名 npm rm パッケージ名 npm r パッケージ名 | アンインストール |
npm list | パッケージインストールのリスト |
npm list -g | グローバルインストールされているモジュールリスト |
npmのよく使用されるコマンドについて
ここからは、npmでよく使用するコマンドを紹介していきます。
npm install
Node.js用のモジュールをインストール。
インストールした際、「–save」オプション・「–save–dev」オプションを使うと、インストールしたライブラリが「package.json」に記述。
- $ npm install モジュール名
上記のモジュール名を省略した際、package.jsonに書いてある依存ライブラリをインストール。
また、「-g」オプションを付けるとグローバルインストールとなります。
そのため、PATHが通りやすくなり、モジュールのコマンドを行えるようになります。
- $ npm install -g mocha //テストフレームワークをグローバルインストール
- $ mocha -h //mochaコマンドを実行可能
npm inti
依存ライブラリ・プロジェクトの基本となる情報を記述する「package.json」を作るためのコマンドです。
名前・Gitリポジトリといった必要な情報を入力すると「package.json」を作ります。
- $ nom inti
「package.json」を共有すれば、他の環境でもnpmを使用することができ、依存ライブラリをインストールすることができます。
npm publish
自作のNode.js用のモジュールを公開する際に使います。
「Create an Account」でnpmアカウントを作り、publishコマンド・addUserコマンドを実行。
- $ cd 自作モジュールPATH$ npm adduser //登録したnpmアカウントの情報を入力
- $ npm publish //モジュールアップして公開
npmでよく使用されるパッケージについて
npmでよく使用されているパッケージは以下の通りです。
パッケージ | 説明 |
lodash | JavaScriptで関数型プログラミングする際に使用するモダンユーティリティライブラリ |
express | オープン・高速・軽量なNode.jsのためのWebフレームワーク |
chalk | 簡単にターミナルに表示する文字列スタイルを指定 |
request | httpコールを簡素作成するためのライブラリ |
async | 非同期処理を簡素なAPIで記述可能 |
bluebird | Promiseを実現するためのフレームワーク |
commander | CLIツールを作成するためのフレームワーク |
fs-extra | Node.jsにデフォルトで存在するfsモジュールに含まれていないファイルシステム関連のメソッドを追加するモジュール |
debug | Node.js・Webブラウザで動作する軽量デバッグユーティリティ |
まとめ
- Node.jsのパッケージ管理ツール
- 高速処理
- メモリ消費量の効率化
- インストールが容易
- よく使用されるコマンドは「npm install」「npm inti」「npm publish」
npmの基礎知識がだいたい身に付いたと思います。
本記事で紹介した使い方以外にもnpmの使い方はたくさんあります。
ぜひ自身で体験して、うまく活用してみてください。
toiroフリーランスは、SHIFTグループがプライムとして参画している独自案件をフリーランスエンジニア向けに紹介する唯一のプラットフォームサービスです。
エージェントによるサポートもありますので、ご利用を検討してみてはいかがでしょうか。