404 Not Found

404 Not Found


nginx

インストールと環境設定

ボブは、あるテック企業に就職したばかりのフロントエンド開発者です。初日、メンターからプロジェクトのリポジトリURLを渡されました。リポジトリをクローンした後、npm installを実行したところ、多数のエラーが発生しました。調べてみると、会社のプロジェクトではNode.js 22 LTSが使用されていたのに対し、彼のローカルマシンではまだ古いバージョン18が動作していたことが判明しました。直接アップグレードすると他のレガシープロジェクトに影響が出るのではないかと心配したボブは、ジレンマに陥りました。幸いなことに、メンターがnvmを勧めてくれたおかげで、彼は異なるNode.jsバージョンを自由に切り替えることができるようになり、各プロジェクトが互いに干渉することなく、それぞれ互換性のあるバージョンを使用できるようになりました。それ以来、ボブはバージョン間の競合について心配する必要がなくなりました。

学習内容


1. nvm のインストールと使用方法

(1) なぜnvmが必要なのでしょうか?

Node.js は頻繁に更新されており、プロジェクトによって依存するバージョンが異なる場合があります。nvm(Node Version Manager)を使用すると、同じマシンに複数のバージョンの Node.js をインストールし、必要に応じて切り替えることができるため、バージョンの競合を回避できます。

(2) nvm をインストールする

macOS / Linux:

BASH
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

インストールが完了したら、ターミナルを再起動するか、次のコマンドを実行してください:

BASH
source ~/.bashrc

Windows:

Windows ユーザーは nvm-windows を利用できます。インストーラーをダウンロードしたら、ウィザードの指示に従ってインストールを完了してください。

(3) Node.js のバージョンのインストールと切り替え

BASH
nvm install 22
nvm use 22
nvm alias default 22
コマンド 説明
nvm install <version> 特定のバージョンをインストール
nvm use <version> 特定のバージョンに切り替える
nvm ls インストール済みのバージョンの一覧
nvm ls-remote 利用可能なリモートバージョンの一覧
nvm alias default <version> デフォルトのバージョンに設定
nvm current 現在使用中のバージョンを表示

▶ 例:Node.js 22 LTS のインストールと切り替え

BASH
$ nvm install 22
Downloading and installing node v22.11.0...
Now using node v22.11.0 (npm v10.9.0)

$ nvm use 22
Now using node v22.11.0 (npm v10.9.0)

$ nvm current
v22.11.0

(4) Node.js のインストール方法の比較

手法 メリット デメリット 適したシナリオ
公式インストールパッケージ シンプルで直感的、ワンクリックでインストール バージョンの切り替えが難しく、アンインストールも面倒 1つのバージョンしか使わない初心者
nvm 複数のバージョンを同時にサポートし、柔軟に切り替え可能 nvm の別途インストールが必要 複数のプロジェクトに携わり、複数のバージョンを使用する開発者
パッケージマネージャー(apt/brew) システムとの統合性が高い バージョンが古い場合があり、切り替えが面倒 Linuxサーバー環境

2. Node.js のインストールを確認する

(1) Node.js のバージョンを確認する

インストールが完了したら、ターミナルを開き、次のコマンドを入力してください:

BASH
node --version

出力が v22.11.0 のようであれば、Node.js が正しくインストールされていることを意味します。

(2) npmのバージョンを確認する

npm は Node.js とともにインストールされます。これを確認するには:

BASH
npm --version

出力が 10.9.0 のような形式であれば、npm が利用可能であることを意味します。

▶ 例:検証プロセスの全手順

BASH
$ node --version
v22.11.0

$ npm --version
10.9.0

$ node -e "console.log('Node.js is working!')"
Node.js is working!

ヒント:node -e を使用すると、JavaScript コードを 1 行だけ直接実行できます。これは、手っ取り早くテストを行う際に便利です。


3. REPL 対話型環境

(1) REPL の起動と終了

ターミナルで node と入力して、REPL(Read-Eval-Print Loop)対話型環境に入ります:

BASH
node

終了するには:.exit と入力するか、Ctrl + C を 2 回押してください。

(2) 一般的なREPLコマンド

コマンド 説明
.help ヘルプを表示
.exit REPLを終了
.save <file> 現在のセッションをファイルに保存
.load <file> ファイルをセッションに読み込む
.clear 現在のコンテキストをクリア
.editor エディタモードに入る(複数行編集)

(3) 複数行入力

REPLは、閉じられていない丸括弧や中括弧を自動的に検出し、複数行入力モードに入ります:

JAVASCRIPT
> function add(a, b) {
...   return a + b;
... }
undefined
> add(3, 5)
8

▶ 例:REPLでのコードの素早いテスト

JAVASCRIPT
> const prices = [9.99, 24.5, 3.75, 18.0]
undefined
> prices.filter(p => p > 10).reduce((sum, p) => sum + p, 0)
42.5
> const total = prices.reduce((sum, p) => sum + p, 0)
undefined
> total
56.24

4. 最初のスクリプトを実行する

(1) JavaScript ファイルを作成する

hello.js という名前の新しいファイルを作成します:

JAVASCRIPT
const greeting = 'Hello, Node.js!';
console.log(greeting);

const version = process.version;
console.log(`Running on ${version}`);

(2) node コマンドを使用して実行する

BASH
node hello.js

▶ 例:スクリプトの実行とパラメータの渡し方

作成者:greet.js

JAVASCRIPT
const name = process.argv[2] || 'World';
console.log(`Hello, ${name}!`);
console.log(`Node version: ${process.version}`);
console.log(`Current directory: ${process.cwd()}`);

実行:

BASH
$ node greet.js Bob
Hello, Bob!
Node version: v22.11.0
Current directory: /home/bob/projects/demo

(3) process オブジェクトの概要

process は、Node.js のグローバルオブジェクトであり、require なしでも使用できます。共通のプロパティ:

プロパティ 説明
process.version Node.js のバージョン
process.argv コマンドライン引数の配列
process.cwd() 現在の作業ディレクトリ
process.env 環境変数オブジェクト
process.exit() プロセスを終了

5. package.json の作成

(1) npm init を使用して対話形式で作成する

BASH
npm init

npm は、プロジェクト名、バージョン、説明などの情報を順次入力するよう促し、最終的に package.json を生成します。

(2) npm init -y を使ってプロジェクトをすばやく作成する

BASH
npm init -y

-y はすべての質問をスキップし、デフォルト値を使用して package.json を生成するため、すぐに使い始めるのに最適です。

▶ 例:npm init -yによって生成された package.json

BASH
$ mkdir my-app && cd my-app
$ npm init -y
JSON
{
  "name": "my-app",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

(3) package.json 内の主要なフィールドの説明

フィールド 説明
name プロジェクト名(必須、小文字、スペースなし) "my-app"
version セマンティックバージョン番号、必須 "1.0.0"
description プロジェクト概要 "A sample project"
main 入力ファイル "index.js"
scripts カスタムスクリプトコマンド {"start": "node index.js"}
dependencies 生産上の依存関係 {"express": "^4.21.0"}
devDependencies 開発用依存関係 {"jest": "^29.7.0"}
license オープンソースライセンス "MIT"

(4) セマンティックバージョンの範囲表記

記号 意味 許可されるバージョン
なし 完全一致 "1.2.3" 1.2.3のみ
^ 主要なバージョンに対応 "^1.2.3" 1.2.3以上、2.0.0未満
~ マイナーバージョンに対応 "~1.2.3" 1.2.3以上、1.3.0未満
>= 以上 ">=1.2.3" 1.2.3 以降

6. 一般的な開発ツール

(1) VS Code のインストールと設定

VS Codeは、Node.js開発において最も人気のあるエディタであり、ターミナルとデバッガーが組み込まれています。

(2) おすすめの Node.js 拡張機能

拡張機能名 機能
Node.js 拡張パック Node.js 開発用拡張機能のコレクション
ESLint コードスタイルのチェック
見栄えを良くする コードの書式設定
Code Runner コードスニペットをすばやく実行
npm IntelliSense npm モジュール名の自動補完

(3) VS Code の組み込みターミナル

キーボードショートカット Ctrl + を使って組み込みのターミナルを開けば、エディタとターミナルを切り替える必要がなくなります。

▶ 例:Node.js をデバッグするために VS Code を設定する

プロジェクトのルートディレクトリに .vscode/launch.json を作成します:

JSON
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "skipFiles": ["<node_internals>/**"],
      "program": "${workspaceFolder}/index.js"
    }
  ]
}

F5 を押して、デバッグを開始してください。


7. nvm を使った Node.js の複数バージョンの管理手順

100%
flowchart TD
    A[Installation nvm] --> B[nvm install 22]
    B --> C[nvm install 18]
    C --> D[nvm use 22]
    D --> E{Project Switching?}
    E -->|Enter the Project A| F[nvm use 22]
    E -->|Enter the Project B| G[nvm use 18]
    F --> H[node --version Verification]
    G --> H
    H --> I[Run Project]
    I --> E

8. 総合的な例:Node.js プロジェクトをゼロから作成する

以下の手順では、Node.js のインストールから最初のスクリプトの実行に至るまでの全プロセスを解説します:

BASH
# 1. Install and switch to Node.js 22 LTS
nvm install 22
nvm use 22

# 2. Verify the Installation
node --version
npm --version
TEXT
v22.11.0
10.9.0
BASH
# 3. Create a project directory and initialize it
mkdir bob-project
cd bob-project
npm init -y

作成者:index.js

JAVASCRIPT
const projectName = require('./package.json').name;
const version = process.version;

console.log(`Project: ${projectName}`);
console.log(`Node.js: ${version}`);
console.log(`Directory: ${process.cwd()}`);

const items = ['setup', 'config', 'deploy'];
items.forEach((item, index) => {
  console.log(`Step ${index + 1}: ${item}`);
});

進行中のプロジェクト:

BASH
node index.js
TEXT
Project: bob-project
Node.js: v22.11.0
Directory: /home/bob/bob-project
Step 1: setup
Step 2: config
Step 3: deploy

❓ よくある質問

Q nvmとNode.jsを直接インストールする場合の違いは何ですか?
A Node.jsを直接インストールすると、1つのバージョンしか使用できず、アップグレードすると古いバージョンは上書きされてしまいます。一方、nvmを使えば、複数のバージョンを同時にインストールし、いつでも切り替えることができるため、プロジェクトごとに異なるバージョンを使用しても、互いに干渉することなく利用できます。
Q npm init -ynpm init の違いは何ですか?
A npm init では、プロジェクト名やバージョンなどの情報を一つずつ入力するよう求められます。一方、npm init -y ではすべての入力プロンプトをスキップし、デフォルト値を使用して package.json ファイルを生成するため、プロジェクトを素早く作成するのに適しています。
Q REPLで複数行のコードを入力するにはどうすればよいですか?
A REPLは、閉じられていない括弧や中括弧を自動的に検知し、複数行モードに切り替わります(...というプロンプトが表示されます)。また、.editor と入力することで、複数行エディタモードに切り替えることもできます。
Q Node.jsのバージョンはどのように選べばよいですか?
A LTS(長期サポート)バージョンを優先してください。LTSバージョンは、少なくとも30か月間のメンテナンスサポートが提供され、本番環境に適しています。最新バージョンには最新の機能が搭載されていますが、メンテナンスサイクルが短いため、新機能を試すのに適しています。
Q nvm-windows のコマンドは、macOS や Linux の nvm コマンドと同じですか?
A 主要なコマンド(install、use、ls)は基本的に同じですが、nvm-windows は独立した実装であるため、一部の高度な機能については異なる場合があります。それぞれのドキュメントを参照することをお勧めします。
Q Node.js をインストールした後、npm コマンドが見つからない場合はどうすればよいですか?
A npm は Node.js とともにインストールされます。見つからない場合は、環境変数が正しく設定されていない可能性があります。Node.js を再インストールするか、Node.js のインストールディレクトリをシステムの PATH に手動で追加してみてください。

📖 まとめ


📝 練習問題

  1. nvm を使用して Node.js 22 LTS をインストールし、デフォルトのバージョンとして設定する
  2. REPL に入り、配列内のすべての偶数の和を計算する関数を定義し、結果を確認する
  3. プロジェクトディレクトリを作成し、npm init -y を使用して初期化した後、package.json 内の name および description フィールドを変更します。
  4. 現在の Node.js のバージョン、オペレーティングシステムのプラットフォーム (process.platform)、およびランタイム (process.uptime()) を出力するスクリプト info.js を作成してください。
  5. VS Code に Node.js Extension Pack をインストールし、launch.json を設定して、スクリプトのデバッグと実行に成功する
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%