😬

【初心者】Node.js入門

2023/10/17に公開

はじめに

Node.jsの基本的な操作を記述しています。

Node.jsとは

Node.jsとはJavaScriptをサーバー上で実行するための開発環境です。Node.jsには非同期処理の特徴があることから大量のアクセスを高速に捌く必要があるWebアプリやサービスに向いています。

Node.jsの仕組み

Node.jsはいくつかのモジュールを組み合わせて構成されています。Node.jsを理解する上で重要なのは「V8」と「Libuv」です。この2つが、サーバーサイドでのJavascript実行環境を作っています。

https://blog.insiderattack.net/event-loop-and-the-big-picture-nodejs-event-loop-part-1-1cb67a182810

V8

V8とはJavaScriptの関数を実行するために広く使用されているJavaScriptエンジンです。
V8はJavascriptで書かれたソースコードをECMAScriptを用いて解析します。
簡単にいうと、Javascriptで書かれているソースコードを機械語に変換してOS上で実行します。

Libuv

Libuvとは非同期I/Oに重点を置いたマルチプラットフォームサポートライブラリです。
非同期I/Oは、OSごとに実現方法が異なります。OSを気にすることなく非同期I/Oを使えるようにしようとして作られたのがLibuvです。

こちらの記事を参考にさせていただきました。
https://qiita.com/Shiruba/items/709044782cffbd2aaeda

Node.jsについて、多少理解ができたと思うので基本的な操作を説明します。
step1 npmとは
step2 パッケージのインストール
step3 よく使うコマンド

npmとは

npmとはNode.js のパッケージをオンライン上のリポジトリから取得、管理するツールです。

npmはNode.jsでの開発に欠かせないものとなっています。

npmではpackage.jsonとpackage-lock.jsonというファイルでパッケージを管理します。

package.json

package.jsonには現在のプロジェクトが直接依存するnpmモジュールが記載されます。
インストールすべきパッケージをdependenciesまたはdevDependenciesというリストに明示します。
devDependenciesとは開発環境でしか使わないパッケージを記載します。
それに対し
dependenciesとは本番環境でも利用するパッケージを記載します。
パッケージのインストール方法によってどちらに記載場所か変わります。

package-lock.json

package-lock.jsonには依存関係のパッケージのバージョンの詳細が記載されます。
パッケージをインストール後に時間が経過して新しいパッケージが配布されることがあります。その際にpackage.jsonでインストールを行うとインストールした時点のパッケージと異なるバージョンを取得するためアプリケーションが動作しない問題が発生する場合があります。この問題を解決するために生まれたのがpackage-lock.jsonです。
基本的には直接編集してはいけません。

下記のコマンドを実行すると、対話形式で package.json ファイルを作成することができます。

$ npm init 

下記コマンドでpackage.jsonに記載されているパッケージをインストールします。

$ npm install

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

package.jsonに記載せずともパッケージをインストール方法があります。
npmにはローカルインストールとグローバルインストールの二つがあります。
ローカルインストールには本番環境用と開発環境用があります。

コマンド 分類 記述先
npm i <package name> ローカルインストール dependencies
npm i -D <package name> ローカルインストール devDependencies
npm i -g <package name> グローバルインストール -

ローカルインストール(本番環境用)とは

プロジェクトごとに必要なパッケージをプロジェクトフォルダ内にインストールする方法です。
ローカルインストールされたパッケージは、node_modulesディレクトリ内に格納されます。
package.jsonのdependenciesに追加されます。
以下の方法でインストールします。
package

$ npm install <package name>
# 省略版
$ npm i <package name>

ローカルインストール(開発環境用)とは

package.jsonのdevDependenciesに追加されます。
以下の方法でインストールします。
package

$ npm install <package name> --save-dev
# 省略版
$ npm i -D <package name>

グローバルインストールとは

特定のパッケージをコンピュータ全体にインストールする方法です。
一般的には、開発者ツールやコマンドラインユーティリティなど、プロジェクトに依存しないツールをグローバルインストールします。
package.jsonには記載されません。
以下の方法でインストールします。

$ npm install -g <package name>
# 省略版
$ npm i -g <package name>

よく使うコマンド

# インストール済みのパッケージ一覧を表示します。依存関係のものも表示します。
$ npm list

# インストール済みの第一階層のみのパッケージを表示します。
$ npm list --depth=0

# グローバルインストール済みのパッケージ一覧
$ npm list -g

# package.jsonに記述されたパッケージをアップデート
$ npm update

# インストール済みのパッケージに最新バージョンがあるか確認する
$ npm outdated

# パッケージのアンインストール
$ npm uninstall <package name>

# package.jsonにアンインストールしたパッケージ情報を反映する
$ npm uninstall --save

# package.jsonに記述されていないnode_modules内のパッケージを全て削除
$ npm prune

# パッケージの詳細情報を表示
$ npm view <package name>

さいごに

今回はNode.jsについてまとめました。インストール方法にはnpm ciもありましありましたが省きました。node_modulesの説明も省いており、全然、説明が足りなかったかもしれません。
記事に関する間違いなどありましたらコメントください。
最後まで読んでいただきありがとうございました。

Discussion