このレッスンでできるようになること: Node.js(JavaScript を自分のパソコンで動かす土台)が入り、
node --versionでバージョンが確認できる。npmの役割と、「PC全体に入れる道具」と「プロジェクトの部品」の違いがわかる。 所要時間: 45〜60分
再開する人へ: ①ターミナルを開く → ②
cd ~/fde-dojoで教材フォルダに移動 → ③前回の続きから。
第0章もこれで最後の道具です。ここまでで、ターミナル・Git・Claude Code・doctor がそろいました。仕上げに Node.js を入れて、工具箱を完成させます。詰まったら、レッスン07で手に入れた doctor に遠慮なく相談してください。
Node.jsとは(どんな時に必要になるのか)
**Node.js(ノード・ジェイエス)は、JavaScript というプログラミング言語を、あなたのパソコンの上で動かすためのエンジン(実行係)**です。
JavaScript は、Web でいちばん広く使われているプログラミング言語です。もともとは、Webページを動かすためにブラウザの中で動くものでした。それを**ブラウザの外(あなたのPC)**でも動かせるようにするのが Node.js です。
では、Node.js は「どんな時」に必要になるのでしょうか。この教材では、この先の章ではっきりと出番があります。
- 第4章で、予約システムのサーバーを動かすとき: あなたが作るアプリの裏側(サーバー)は、Node.js の上で動きます。Node.js がないと、そもそも動かせません。
- 第5章で、Claude の API を呼ぶアプリを作るとき: プログラムから Claude に問い合わせる土台としても Node.js を使います。
今日は、このエンジンを積んでおくだけです。JavaScript を書くのは第4章からなので、いまは「どんな時に要るのか」のイメージが持てれば十分です。工具は先に全部そろえておき、あとは作ることに集中する方針です。
Node.js は OpenJS Foundation の商標です。
バージョンの選び方(LTS と、サポート期限 EOL)
Node.js には複数のバージョンがあり、選び方に1つだけコツがあります。サポートが続いているバージョンを選ぶことです。
Node.js の各バージョンには、次の3つの状態があります。
- Active LTS: 長期サポート版(LTS = Long Term Support)の、いま一番おすすめの状態。安定していて、当分サポートされます。
- Maintenance: サポートは続いていますが、そろそろ終盤の状態。使っても大丈夫です。
- EOL(End of Life): サポートが終了した状態。セキュリティの修正も届かなくなるため、新しく入れるなら避けます。
合格ライン(達成状態): 特定の数字を暗記する必要はありません。Node.js 公式のリリースページ(
nodejs.orgの Releases)を自分で開き、そこで「Active LTS」または「Maintenance」と示されているバージョンが入っていれば合格です。EOL と書かれた古いバージョンだけは避けてください(サポート終了版は、セキュリティ上の穴が放置される危険があります)。
参考(最終確認日 2026-07-24 時点。最新は必ず公式ページで確認): この時点では v24 が Active LTS、v22 が Maintenance、v20 は EOL(サポート終了)でした。数字は時間とともに進むので、上の「公式ページで LTS か Maintenance を確認」を基準にしてください。
npm とパッケージ(部品を借りてくる)
開発では、必要な機能をゼロから全部自分で作るのではなく、世界中の人が公開してくれた「部品」を借りてくるのが普通です。この部品をパッケージ、借りてくる道具を npm(エヌ・ピー・エム) と呼びます。npm は Node.js に付属していて、Node.js を入れると一緒に入ります。
- パッケージ: 世界中の人が公開した「部品」(日付を扱う、画像を扱う、など)。
- npm: そのパッケージを、自分のプロジェクトに取り込む道具。
- package.json: 「どの部品を、どのバージョンで使うか」を書いた一覧のファイル。
- node_modules: 取り込んだパッケージの実体が置かれるフォルダ。中身は膨大です。
- package-lock.json: 実際に入れた部品の版を細かく記録し、別のPCでも同じ環境を再現できるようにするファイル。
ここで先に1つだけ覚えておくと得をします。node_modules(部品の実体)は Git に入れません。package.json と package-lock.json(部品の一覧と記録)は Git に入れます。実体は package.json さえあればいつでも入れ直せるので、重い実体は配らず、軽い一覧だけを配る、という考え方です(node_modules を除外する具体的な設定は、第2章で .gitignore として学びます。今は「実体は入れない、一覧は入れる」だけでOKです)。
道具箱は2つ ― グローバルとローカル
npm で部品を入れるとき、置き場所が2種類あります。ここは未経験のうちに整理しておくと、この先ずっと迷いません。
| グローバル(PC全体) | ローカル(このプロジェクト) | |
|---|---|---|
| 入れ方 | npm install -g 名前(-g が目印) | npm install 名前(-g なし) |
| どこに入る | PC全体で使えるコマンドとして | いま作業中のフォルダの node_modules に |
| 使える範囲 | どのフォルダからでも呼べる | そのプロジェクトの中だけ |
| 向いているもの | どこでも使う「コマンド道具」 | そのアプリが動くのに必要な「部品」 |
もう1つ、npx(エヌ・ピー・エックス)という道具もあります。これは「入れっぱなしにせず、その場で1回だけ」部品を動かしたいときに使います。試しに動かすだけなら npx、常用するなら入れる、という使い分けです。
暗記は要りません。「-g が付くとPC全体の道具、付かないとそのプロジェクトの部品。npx はその場で1回」というイメージだけ持っておけば十分です。実際にプロジェクトを作って部品を入れるのは、第4章です。
やってみよう
ステップ1: すでに入っていないか確認する
node --version
達成状態: v + 数字(例 v24.x.x)が出たら、すでに入っています。その数字が、公式のリリースページで Active LTS または Maintenance と示されている版なら、そのままステップ3へ進んでOKです。EOL の古い版なら、ステップ2で入れ直します。「command not found」「認識されません」系なら、ステップ2へ。
今どの node が使われているかは、次で確かめられます(複数入っているときの切り分けに役立ちます)。
- macOS:
which node - Windows:
where node
ステップ2: インストールする
macOS / Windows 共通で、公式サイトのインストーラーを使います。
- ブラウザで、Node.js 公式サイト(
nodejs.org)を開く - 「LTS」と書かれたボタンからダウンロードする(隣に新しいバージョンがあっても、まずは LTS を選びます)
- ダウンロードしたインストーラーを実行し、すべてそのまま「次へ/Next」で進める
- 完了したら、ターミナルを閉じて開き直し、
node --versionで確認
URL やボタンの位置は変わることがあります。上の「公式サイトの LTS ボタン」を目印にしてください(最終確認日 2026-07-24 時点では
nodejs.orgのトップに LTS のダウンロードボタンがありました)。
達成状態: node --version で、公式が Active LTS または Maintenance と示すバージョンの数字が表示されること。
ステップ3: おまけの相棒(npm)も確認する
Node.js を入れると、npm も一緒に入っています。
npm --version
達成状態: 数字が表示されること。数字そのものは何でも構いません。
ステップ4: 30秒だけ動かしてみる
エンジンがかかるか、一言だけ喋らせてみましょう。
node -e "console.log('Hello from Node')"
達成状態: Hello from Node と表示されること。今、あなたのパソコンの上で JavaScript のプログラムが1行動きました。 中身の意味は第4章で学ぶので、今は「動いた」という事実だけ持ち帰ってください。
ステップ5: ファイルに書いて動かす
node -e は「その場で1行」でしたが、実際の開発ではファイルに書いて動かすのが基本です。1回だけ体験しておきましょう(fde-dojo の中にいることを確認してください)。
エディタで新しいファイルを開いて、2行書きます。
- macOS:
open -e workspace/ch0/first.js(「開けない」と出たら、先にtouch workspace/ch0/first.jsを実行してから開き直す) - Windows:
notepad workspace\ch0\first.js(「新規作成しますか?」と聞かれたら「はい」)
開いたら、次の2行を書いて保存してください(意味は第4章で学ぶので、今はそのまま写して大丈夫です)。
console.log('はじめての Node ファイル');
console.log(1 + 2);
保存したら、ターミナルで実行します。
node workspace/ch0/first.js
達成状態: はじめての Node ファイル と 3 が表示されること。node -e の「その場で1行」と違い、今度はファイルに書いて node で動かすことができました。これが、第4章以降ずっと使う基本の動かし方です。
ステップ6: 自分で1行だけ足して、動かし直す
最後に、自分の手で少しだけ書き換えてみます。これは、第1章から始まる「AIに全部任せず、自分でも少し手を入れて確かめる」進め方の予行演習です。
workspace/ch0/first.js に、次の1行を3行目として足して、保存してください。
console.log(10 * 3);
予測してから実行しましょう。node workspace/ch0/first.js を打つと、表示は (A) はじめての Node ファイル と 3 と 30 の3行になる / (B) 30 の1行だけになる。どちらだと思いますか。workspace/ch0/setup-notes.md に「予測: A か B」を1行書いてから、下を開いてください。
答え合わせ(開く=答え)
(A) 3行になります。 ファイルは上から順に実行されるので、前の2行はそのまま残り、足した1行が3行目として 30 を表示します。1行足しただけで結果が変わる、この小さな手ごたえが、これからの学習の基本の感覚です。
書いてみよう(通し成果物):
workspace/ch0/setup-notes.mdに、「Node.js が入った/-gとローカルの違いが◯◯だとわかった」を1行、自分の言葉で書き足してください。これで第0章のあなたのメモが完成します。
仕組みの解剖 — 「言語を入れる」とはどういうことか
- パソコン(CPU)が直接理解できるのは機械語という数字の羅列だけで、JavaScript のような人間向けの言語はそのままでは通じません。**Node.js は、JavaScript を読み取って実行してくれる「実行係(ランタイムと呼びます)」**です。
- レッスン02のとつなげると:
nodeと打つ → シェルが PATH のリストからnodeというプログラムを見つける → そのnodeがあなたの JavaScript を実行する。登場人物が1人増えただけで、仕組みは同じです。 - なぜ
node_modulesを配らず、package.jsonを配るのか: 部品の実体(node_modules)はとても重く、しかもpackage.jsonの一覧さえあればnpm installでいつでも入れ直せます。だから、重い実体は各自が手元で用意し、軽い一覧(package.jsonとpackage-lock.json)だけを共有するのが定石です。「設計図は配る、完成品は配らない」と考えるとしっくりきます。
この一連の流れは、上の「JavaScript が動くまで」の図で示したとおりです。
理解ゲート
Claude Code の gatekeeper に採点してもらいましょう。こう打ってください。
gatekeeperスキルで、第0章レッスン09の理解ゲートをお願いします
聞かれるのは、おおむね次の2つです(自分の言葉で答えられればOK。暗記ではありません)。
- Node.js とは何ですか?(一言で)そして、
node --versionが「command not found」と出たとき、最初に試す一手は何ですか? npm install -gと、-gなしのnpm installは、それぞれ何が違いますか? また、package.jsonとnode_modulesのうち、Git に入れるのはどちらで、入れないのはどちらですか?
うまくスキルが動かない場合は、下のセルフチェックで自己採点してください。
Q. Node.js を一言で/command not found の一手
Node.js は「JavaScript をパソコン上で実行してくれるエンジン(実行係)」。command not found が出たら、まずターミナルを閉じて開き直す(PATH の再読み込み。レッスン02・03と同じパターン)。
Q. -g とローカルの違い/どちらを Git に入れる
-g は PC全体で使うコマンド道具として入れる。-g なしは、そのプロジェクトの node_modules に部品として入れる。Git には、package.json(一覧)を入れる。node_modules(実体)は入れない(package.json から入れ直せるため)。
セーブポイント
-
node --versionが、公式で Active LTS または Maintenance と示される版 -
npm --versionが数字を返す -
node -e "console.log('Hello from Node')"で挨拶が返ってきた -
workspace/ch0/first.jsを作り、1行足してnodeで動かせた -
workspace/ch0/setup-notes.mdに1行書いた
今日はここで区切ってOKです。 第0章の道具は、これで全部そろいました。
よくある詰まり
| 症状 | 原因と対処 |
|---|---|
インストールしたのに node: command not found | ターミナルの開き直し(毎度おなじみPATH問題)。それでも出ないときはインストーラーを再実行。まだ直らなければ doctor へ |
| バージョンが古い(EOL の版)と出る | 昔入れたものが残っています。公式サイトから LTS を入れ直せば新しいほうが使われます。入れ直しても古い数字のままなら、which node/where node でどこの node が使われているか確認を |
npm install -g が EACCES / permission denied で失敗 | sudo で無理に通さないでください。sudo で入れると管理者の領域にファイルが作られ、あとで別の操作が権限エラーで詰まる原因になります。公式インストーラーで入れ直すのが安全です。詰まったら doctor へ |
node -e ... で SyntaxError | 引用符の打ち間違いが定番です。" と ' の対応をコピー&ペーストで確認してください。全角の ” になっていないかも要確認 |
node が複数あるみたいで挙動が変 | which node(Windows は where node)で、いま使われている node の場所を確認。古いものが優先されている場合は、ターミナルを開き直すか、公式インストーラーで入れ直してください |
| (Windows)ダウンロードや実行が途中で止まる | 会社PCでは管理者権限やセキュリティソフトが関係することがあります。エラー文ごと doctor に相談するか、情シスに学習用途である旨を伝えてください |
次は レッスン99 第0章の総復習 へ。そろえた道具を一度に振り返り、第1章へ進む準備を整えます。
最終確認日: 2026-07-24