まるノート

備忘録も兼ねて、様々なお役立ち情報をまとめています。

Node.js の基礎知識(npm、package.jsonについて)

はじめに

Node.js について、使い方など少しずつ紹介したいと思います。
※とりあえず Node.js がインストール済みであることが前提です。


本記事の内容は npm と package.json についてです。
自分は Node.js を使い始めた頃はよくわかっていませんでしたが、何か作業をする上で必ず出てくる内容です。
これらが何者なのかわかっていないと、おそらく自身の作業内容についてよくわからないまま進むことになってしまいます。


node.js が Javascript の実行環境である、ということは別の記事でも記載していますが、 基本的な使い方は PowerShell などで以下のコマンドを実行するだけです。

node [実行したいJavascriptのファイルパス]

node.js 上で Javascript を起動するためのコマンドです。スクリプトの内容に応じて処理が進みます。

ですが、多くの入門書では以下のようなnpm XXXというコマンドが早々に登場しており、あまりこのコマンドについて言及されていないように思います。今回は主にこの npm についての説明になります。

npm XXX 


npm とは

npm とは node package manager の略です。Node.js に同梱されてインストールされます。


下の画像のような Javascript プログラムパッケージの巨大リポジトリから、パッケージをインストールすることができます。自分は行ったことはありませんが、作成したパッケージを登録することもできるようです。

Node.js を利用する入門書やサンプルプログラムのほとんどは、npm install パッケージ名というようなコマンドを利用しているのではないでしょうか。これは、npmリポジトリからパッケージをインストールして利用しているということです。
また、あるパッケージは他の様々なパッケージと依存関係にあり、それらも一緒にインストールされます。

※パッケージをモジュールと表現したりします。


npm install コマンドを試してみる

例として http というモジュールをインストールしてみます。
PowerShell を起動して、適当な作業用フォルダを作成しその中に httpモジュールをインストールします。

※実は node.js をインストールしていればhttpモジュールは標準的に使えます。あくまで npm install の実行例ということをご承知下さい。

mkdr [フォルダパス]
cd [フォルダパス]
npm install http


メモ
「npm install [パッケージ名]」は、カレントディレクトリにパッケージをインストールするコマンドです。
「npm install -g [パッケージ名]」というように -g オプションをつけてインストールすると、PC上のどのディレクトリからもコマンドが実行できる場所(PATHが通った場所)にインストールされます。

「npm install [パッケージ名] --save」というように --save オプションをつけている情報もありますが、古い npm でなければつけてもつけなくてもどちらでも大丈夫です。


実行後は以下のようなフォルダとファイルが存在するはずです。
「node_modules」というフォルダ内に上でインストールしたパッケージをはじめとする依存関係にあるパッケージ郡が含まれます。


package.json と package-lock.json

次に上でインストールした「node_modules」と共に同じフォルダに置かれた「package.json」及び「package-lock.json」について説明します。


package.json

まずは package.json から。ファイルを開くと以下のような記載があります。

記載にある通り、package.json には dependencies という記載があり、インストールしたパッケージがJSON形式で記載されます。
合わせてパッケージのバージョンなども記載されます。


package-lock.json

次に package-lock.json を見てみます。

こちらには、インストールしたパッケージと依存関係にあるパッケージの情報などが記載されます。
こちらはより詳細な情報が載っている、という程度の理解で良いと思います。


npm init について

上の例ですと、いきなりnpm installコマンドを実行しましたが、本来、新規プロジェクトを作成する際は npm init というコマンドを最初に実行します。


npm initを実行することで package.json が生成されます。合わせて以下の情報をプロンプトとの対話形式で決定し package.json に記載されます。

{
  "name": "httpserver",         パッケージ名称
  "version": "1.0.0",           バージョン
  "description": "",            パッケージの説明
  "main": "index.js",           実行開始時の呼び出し先 
  "scripts": {                  npm run コマンドで実行するスクリプト
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],               npmリポジトリの検索キーワード
  "author": "",                 作者名
  "license": "ISC"              ライセンスの種類
}

※上の内容の中で、「main」と「scripts」に関しては補足説明が必要かと思いますが、本記事ではひとまず割愛します。気になる方は別途調べてみて下さい。


次に npm install を行うことで、前項にあるようにdependencies が追記されてゆくという流れです。


以上、Node.js を利用する上で必須の知識、npm と package.json の説明でした。
インストールしたパッケージを Javascript プログラムで具体的にどのように利用するかは、また別に記事にしたいと思います。

.