質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.05%

Reactのエラー調査方法について

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 318

chapter

score 37

いつもお世話になっております。

Reactを使い始めたばかりなのですが、エラーの調査について
みなさんどのような方法でやっているか教えていただきたいです。

コンパイル時にエラーになった時はどこでエラーが発生したのか
分かりやすいのですが、コンパイルが成功した状態で
ブラウザで確認した時にエラーが出る場合、

Chromeの開発ツールなどでエラーを見ても、コンパイルされた
ソースコードで発生したエラーが表示されるため、
大元のJavascriptのどこに不備があったのか追うのが難しいです。

Reactのバージョンは16.12で、Chromeの拡張機能で
React Developer Tools 4.2.1というのを入れてみたのですが、
開発ツールの「Components」には何も表示されなくて、
「Profiler」の方は以下の警告が表示されています。

Profiling not supported.
Profiling support requires either a development or production-profiling build of React v16.5+.

なお、拡張機能の詳細では、「すべてのサイト」のアクセスを許可して、
「ファイルのURLへのアクセスを許可」しています。

Reactのバージョンは16.12なので、対応していると思うのですが。

コンパイル時に「--profile」を付けて実行しても同じ警告のままでした。

なお、コンパイルに関しては、Laravel v6.6.2のlaravel-mix v4.1.4を使っております。
(Webpackのバージョンは、webpack v4.41.4, webpack-cli v3.3.10)

package.json

    "scripts": {
        "dev": "npm run development",
        "development": "cross-env NODE_ENV=development NODE_OPTIONS=--max_old_space_size=2048 node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
        "watch": "npm run development -- --watch",
        "watch-poll": "npm run watch -- --watch-poll",
        "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
        "prod": "npm run production",
        "production": "cross-env NODE_ENV=production NODE_OPTIONS=--max_old_space_size=2048 node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
    },

スクリプトがこのように設定されているので、開発時のコンパイルは「npm run dev」で実行しています。

プロファイル用のオプションを付ける際は「npm run dev --profile」と「watch」の記述法にならって
「npm run dev -- --profile」と「npm run development -- --profile」で試してみました。
一番最後の時だけコンパイル時の経過が以下のように細かく表示されましたが

<w> [webpack.Progress] 13646ms building
<i> [webpack.Progress] 38ms finish module graph
<i> [webpack.Progress] 62ms chunk graph
<i> [webpack.Progress] 20ms advanced chunk optimization
<i> [webpack.Progress] 69ms building
<i> [webpack.Progress] 18ms before module ids
<i> [webpack.Progress] 19ms module id optimization
<i> [webpack.Progress] 107ms hashing
<i> [webpack.Progress] 236ms chunk assets processing
<i> [webpack.Progress] 11ms additional chunk assets processing
<i> [webpack.Progress] 694ms emitting
98% after emitting SizeLimitsPlugin

 DONE  Compiled successfully in 14984ms

開発ツールの方の「Profiler」の警告は変わりませんでした。

React Developer Toolsの使い方やその他コンパイル後のエラー調査方法について
元のソースコードのどこで問題が発生しているか分かるような方法をご存知の方が
いらっしゃいましたら、ご教授お願いいたいします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

VScodeのエクステンションのデバッグ機能を使ってデバッグするようにしてみましたが、
別の問題に遭遇してしまったので、改めて別の質問として投稿させていただきます。

こちらはいったん解決済みといたします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.05%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る