INDIE INDEX

ゲームが動かず「ReferenceError: … is not defined」と出るとき

公開 2026-09-24更新 2026-09-24

画面の様子と、コンソールに出た赤い文をそのままClaude Codeに渡すと、名前の書き間違いを定義どおりに直せました。

このページの目次
  1. 起きていること
  2. 原因
  3. 直し方
  4. それでも直らないとき
  5. 情報源

起きていること

AIに作らせたブラウザのゲームを開くと、画面が暗い色のまま何も描かれず、Enterキーを押しても変わらないことがあります。ブラウザの開発者ツールでコンソールを開くと、赤い文で次の形のメッセージが出ています。

ReferenceError: <名前> is not defined

コンソールは、Control+Shift+J、Mac では Command+Option+J で、パネルとして開けます。

このページを作るにあたり、公開済みの弾よけゲームの写しの1か所(378行目にある関数の呼び出しの名前)を1文字抜いて、確かめるためにわざと動かなくしました。開くと画面は暗い色のまま何も描かれず、Enterキーを押しても変わらず、コンソールには次の赤い文が1件出ました。

ReferenceError: drawBackgroud is not defined

index.html の 378 行目で出ていました。

画面を持たないブラウザでゲームの中の経過の秒数を読むと、Enter を押したあとも 0.05 秒のまま増えませんでした。

確かめるためにわざと動かなくした弾よけゲームを開いた直後の画面。背景が暗いままで、自機も弾も経過秒数も表示されていない

原因

ReferenceError: <名前> is not defined は、そのスコープの中に存在しない名前(変数や関数)を呼び出そうとしたときに出ます。定義していない名前を使った、定義した場所の外から呼び出した、読み込む順番が入れ替わっている、といった場合に起きます。

このページで確かめたときは、わざと1文字抜いた書き間違いのため、378行目で呼び出していた名前が、定義されている名前と1文字違っていました。

直し方

コンソールに出た赤い文をそのままコピーし、そのときの画面の様子と合わせてAIに渡します。作業フォルダの外は読まない・書かないでほしい、とだけ先に伝えました。

Claude Codeに直しを頼んだ文

index.html をブラウザで開くと、画面が暗いまま何も表示されず、Enter を押しても動かない。開発者ツールのコンソールに次の赤い文が出た。直して。
Uncaught ReferenceError: drawBackgroud is not defined(index.html の 378 行目)

Claude Codeは、378行目で呼び出していた名前の1文字が抜けていて、定義されている名前と違っていたことを見つけ、定義どおりの名前に直したと返しました。ほかに同じ書き間違いが残っていないかも確かめた、とのことでした。直したファイルは、元のファイルと378行目の1行しか変わりませんでした。

直したファイルを開き直し、コンソールを見直します。赤い文が0件になり、Enterキーを押したあとに経過の秒数が増えていれば直っています。実際に開き直すと赤い文は0件になり、Enterのあとゲームの中の経過の秒数が1秒で約1.02増え、自機と弾、経過の秒数が画面に出ました。

直したあとにゲームを開き直した画面。自機と弾、経過の秒数が表示され、遊べる状態になっている

それでも直らないとき

コンソールに出た文が ReferenceError ではなく TypeErrorSyntaxError など別の名前のときや、同じ形の直しを頼んでも赤い文が消えないときは、コンソールに出ている名前とメッセージの全文を、そのつどAIに渡し直します。エラーの名前ごとの説明は、JavaScriptのエラーの一覧にまとまっています。コンソールには、エラーの意味を確かめる案内へのリンクが出ることもあります。

Claude Code自体が途中で止まる、繰り返し同じ場所でエラーになるといった、コードではなくClaude Codeそのものに関わる症状は、詰まったときに開く公式ドキュメントにまとめています。

情報源

このページに出た言葉