現役エンジニアがNode.jsを解説! 〜Node.jsのパッケージ管理〜

公開日:2022-08-14
JavaScript
Node.js

https://www.youtube.com/watch?v=p7MQOiF8rlg

この講座はYouTubeで動画形式でも用意しています。合わせてご覧ください。

目的

Node.jsのパッケージ管理を理解する。

パッケージ管理とは

パッケージ管理とは、ソフトウェアのインストールや削除、ソフトウェア同士やライブラリとの依存関係を管理することです。関連して、Linuxのパッケージ管理システムの解説動画があります。

https://www.youtube.com/watch?v=l0hQZhoEeW4

こちらはOSのパッケージ管理の話になります。それとは別にプログラミング言語単位でのパッケージ管理があり、今回はNode.jsでのパッケージ管理について説明していきます。

Node.jsでのパッケージ管理ツール

npm

https://www.npmjs.com/https://www.npmjs.com/

npmはNode.js標準のパッケージ管理ツールで、Node.jsをインストールした際に合わせてインストールされます。npmでは必要とするパッケージ(モジュール)の検索、ダウンロード、インストール、アップデートを行えたり、開発したパッケージ(モジュール)を他者に公開などができます。

Yarn

https://yarnpkg.com/https://yarnpkg.com/

Yarnはnpmと互換性があるNode.jsのパッケージ管理ツールです。npmと比較してより細かいバージョンの管理、高速にパッケージをインストールできます。Yarnとnpmは互換性があり相互に簡単に切り替えて使うこともできます。

インストール

第1回で紹介したVOLTAを用いてYarnのインストールができます。
また、VOLTAでYarnのバージョン管理も可能です。

https://volta.sh/https://volta.sh/

volta install yarn

プロジェクトの作成

今回はYarnを用いますが基本的にはnpmも同じになります。

yarn init

package.jsonが作成され、扱うモジュールの情報などが記載されプロジェクトの管理が行えます。

package.json
{
  "name": "04",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "author": "",
  "license": "ISC",
}

expressのインストール

ここではNode.jsで人気のWebなフレームワークのexpressを扱っていきます。

https://expressjs.com/https://expressjs.com/

yarn add express

package.json内ののdependenciesの項目にexpressが追加されていればインストール完了です。

package.json
{
  "name": "04",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "author": "",
  "license": "ISC",
  "dependencies": {
    // 追加される
    "express": "^4.17.2"
  }
}

次のコードはexpressを用いたサンプルコードです。node index.jsで実行してみましょう。サーバーが立ち上がり、「Hello World」と表示されればOKです。

index.js
const express = require("express");
const app = express();
const port = 3000;

app.get("/", (req, res) => {
  res.send("Hello World!");
});

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);
});

インストールした際にnode_modulesというディレクトリが作られ、この中にはインストールしたファイルが入っています。中を見るとexpressが依存しているモジュールも合わせてインストールされていることが分かります。インストールされたモジュールの内容を直接変更するという事はないですが、外部モジュールをインストールした際のファイルがnode_modulesに入る事を念頭に置いておいて下さい。

package.jsonの見方

バージョン指定の方法があり動画内の例だと"express":"^4.17.2"とあります。これはキャレット表記^と呼ばれ、4.17と互換性のあるバージョンがインストールされます。他にもチルダ表記~などがあるので使い分けが可能です。npmのドキュメントの方にpackage.jsonの説明がありますので合わせて確認してみて下さい。

https://docs.npmjs.com/cli/v8/configuring-npm/package-jsonhttps://docs.npmjs.com/cli/v8/configuring-npm/package-json

npm scriptの使い方

package.json内のscriptsの中に簡単なコマンドを記載できます。
テストを実行したい場合の実行コマンドを書いたり、オプション付きサーバーの実行コマンドを覚えなくてもnpm scripts経由で実行できるので便利です。
例えば、サーバーを起動するdev というコマンドをnpm scriptに追加すると、次のようになります。

package.json
{
  "name": "04",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "node index.js"
  }, 
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.2"
  }
}

npm script経由でサーバーを起動できます。

yarn dev

まとめ

今回はNode.jsのパッケージ管理について説明してきました。次回はフレームワークであるexpressの使い方を説明していきます。