#1 JavaScriptで学ぶ環境構築の基本
Webページに動きをつける言語として知られるJavaScriptですが、実は近年ではWebブラウザの外、つまりパソコン上で単独のプログラムとして動かすことも一般的になっています。この記事では、パソコン上でJavaScriptを学ぶための環境構築、いわゆる「Node.js」のインストールから、動作確認、基本的な使い方、そしてつまずきやすいポイントまでを、実際に表示されがちなエラーメッセージも交えながら解説します。
ブラウザだけでもJavaScriptは動く
実はJavaScriptだけなら、特別なインストールをしなくても動かせます。パソコンに入っているWebブラウザの開発者ツール(F12キーなどで開く画面)にあるコンソールに直接コードを打ち込めば、その場で実行結果を確認できます。alert("こんにちは")のようなブラウザならではの機能もすぐ試せるので、「とりあえず動かしてみたい」という最初の一歩には向いています。
ただし、ブラウザのコンソールは1行ずつ試すのには便利ですが、複数のファイルに分けてプログラムを組んだり、後で見返せる形で保存したりするのには不向きです。本格的に学習を進めるなら、次に紹介する「Node.js」を使う方法がおすすめです。
Node.jsのインストール
Node.jsは、ブラウザの外でJavaScriptを実行できるようにするソフトウェアです。公式サイト(nodejs.org)にアクセスすると、たいてい2種類のバージョンが並んでいます。「LTS」と書かれた方が長期サポート版で、安定して動くことを優先した番号です。もう一方の最新版は新機能を試せる反面、変更が入りやすいので、学習用途では基本的にLTSを選んでおけば困りません。
インストールが終わったら、ターミナル(Windowsならコマンドプロンプトやターミナルアプリ、Macならターミナル.app)で次のコマンドを実行してバージョンを確認しましょう。
node --version
ここで v20.11.0 のような数字が表示されれば成功です。npmも一緒にインストールされているので、npm --version も併せて確認しておくと安心です。
インストール直後によく出るエラーと対処法
環境構築で一番つまずきやすいのが、実はこの最初の動作確認の段階です。実際によく見かけるエラーと、その原因・対処法をまとめます。
'node' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。(Windows)
これはNode.jsがインストールされていない、もしくはインストール直後でPATH(コマンドの居場所をOSに教える設定)がまだ反映されていない状態です。多くの場合、インストーラー実行後にターミナルを一度完全に閉じて開き直すだけで解決します。それでも直らない場合は、パソコンを再起動してみてください。command not found: node(Mac/Linux)
意味はWindowsの場合とほぼ同じで、「nodeという命令が見つからない」というエラーです。Homebrewなど別の方法でインストールした場合、シェルの設定ファイル(.zshrcなど)にパスの追記が必要なことがあります。公式サイトのインストーラーを使い直すと解決するケースも多いです。npm ERR! code EACCES/permission denied(Mac/Linuxで発生しがち)
npmで何かをグローバルにインストールしようとしたときに、権限がなくて弾かれるエラーです。あわててsudo(管理者権限)を付けて強引に実行する人もいますが、後々トラブルの元になりやすいので、まずはnodeのインストール方法自体を見直す(後述のnvmを使うなど)のがおすすめです。SyntaxError: Cannot use import statement outside a module
最近の書き方であるimport文をNode.jsでそのまま使おうとすると出るエラーです。Node.jsは初期状態だと少し古い書き方(require)を前提にしているため、importを使いたい場合はpackage.jsonに"type": "module"を追記するか、ファイルの拡張子を.mjsにする必要があります。「なぜかコピペしたコードだけ動かない」というときはこれが原因のことが多いです。ReferenceError: document is not defined
ブラウザ用のコード(画面のボタンを操作するコードなど)をそのままNode.jsで実行しようとすると出ます。documentやwindowはブラウザが用意している機能であり、Node.js単体には存在しません。逆に、ブラウザのコンソールでrequireを使おうとするとUncaught ReferenceError: require is not definedのようなエラーになります。「今どちらの環境で動かしているか」を意識するのが、このエラーを避ける一番の近道です。
ファイルを実行してみる
拡張子が.jsのファイルを用意し、次のように実行します。
node ファイル名.js
ブラウザを開かなくても、ターミナル上で直接JavaScriptのコードを動かせるのが確認できるはずです。もしError: Cannot find module 'ファイル名.js'のようなエラーが出た場合は、ターミナルの現在地(カレントディレクトリ)がファイルの保存場所とずれていることがほとんどです。cd フォルダ名で目的のフォルダに移動してから、もう一度試してみてください。
npmというパッケージ管理の仕組み
Node.jsにはnpmというパッケージ管理ツールが標準で付属しています。他の人が作った便利な機能(ライブラリ)を、npm install ライブラリ名というコマンドで簡単に取り込めます。プロジェクトごとにpackage.jsonという設定ファイルを作っておくと、使っているライブラリの一覧を管理できて便利です。
npm install を実行した際に npm ERR! code ENOENT や Could not read package.json のようなエラーが出ることもありますが、これは単純に package.json がそのフォルダにまだ存在しないというサインです。npm init -y を先に実行して土台となる設定ファイルを作っておくと解消します。
つまずきやすいポイント・よくある質問(FAQ)
Q. ブラウザとNode.js、どちらで学ぶべき?
どちらか一方を選ぶ必要はありません。目に見える動きをすぐ確認したいときはブラウザのコンソール、ファイルとして保存しながらじっくり書きたいときはNode.js、というように使い分けている人が多いです。最初のうちはブラウザで文法に慣れて、少し長いコードを書くようになったらNode.jsに移る、という流れでも問題ありません。
Q. nvmは最初から使うべき?
nvm(Node Version Manager)は、複数のバージョンのNode.jsを切り替えて使うためのツールです。便利ではありますが、学習を始めたばかりの段階では必須ではありません。まずは公式サイトからLTS版をひとつインストールして慣れることを優先し、「別のプロジェクトで違うバージョンが必要になった」というタイミングで導入を検討すれば十分です。
Q. インストールしたのに、次の日にはコマンドが使えなくなっていた
ターミナルアプリを複数種類使っている場合(標準のターミナルとVS Code内蔵のターミナルなど)、設定の反映範囲がずれてこのような状態になることがあります。焦って再インストールする前に、まずは別のターミナルアプリでも試してみると、実は片方だけの設定漏れだったというケースがよくあります。
エディタ・IDEについて
コードを書くためのエディタは何を使ってもJavaScript自体は動きますが、初めのうちは「Visual Studio Code(VS Code)」を選んでおくと、情報量が多く困ったときに調べやすいという声をよく聞きます。もちろんこれが絶対の正解というわけではなく、使いやすさは人それぞれなので、他のエディタに慣れている場合は無理に乗り換える必要はありません。
JavaScriptならではの注意点、他言語との違い
JavaScriptは元々ブラウザ専用の言語として生まれた経緯があり、Node.js環境とブラウザ環境では使える機能が一部異なります。学習中に「このコードが動かない」と感じたら、今どちらの環境で実行しているのかを確認してみてください。この「実行できる場所が2種類ある」という特徴は、他の多くのプログラミング言語とは少し毛色が違う点です。例えばPythonであれば、基本的には「Pythonをインストールしたパソコン上」という一つの場所で動かすことを前提に学習が進みますが、JavaScriptは「ブラウザ」と「Node.js」という2つの実行場所を行き来しながら学ぶことになります。どちらの言語にも一長一短があり、優劣というよりは「前提としている動作環境の数が違う」という設計上の個性だと捉えると、エラーに出会ったときにも落ち着いて対処しやすくなるはずです。
まとめ
JavaScriptの環境構築は、Node.jsをインストールするだけで完了しますが、実際にはPATHの設定漏れや、ブラウザ用コードとNode.js用コードの混同など、細かなつまずきポイントがいくつか存在します。まずはnode --versionでインストールを確認し、エラーが出たときは「今どちらの環境で動かしているか」「ファイルの場所は合っているか」を順に確認していくと、原因を切り分けやすくなります。焦らず一つずつ試していきましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
JavaScriptをもっと学びたい方には「改訂新版JavaScript本格入門」がおすすめです。
コメント
コメントを投稿