コアリポジトリへの貢献、ローダー/プラグインの作成、または複雑なプロジェクトでの作業を行う場合、デバッグツールはワークフローの中心となる可能性があります。大規模プロジェクトのパフォーマンスの低下や役に立たないトレースバックなど、問題が発生した場合、次のユーティリティを使用すると、問題の解決が容易になります。
stats
データ。このデータを手動で精査するか、ツールを使用して処理するかにかかわらず、stats
データはビルドの問題をデバッグする際に非常に役立ちます。内容は専用のページがあるのでここでは詳しく説明しませんが、次の情報を見つけるために使用できることを知っておいてください。
さらに、公式のanalyzeツールやその他のツールは、このデータを受け入れてさまざまな方法で視覚化します。
簡単なシナリオではconsole
ステートメントがうまく機能する場合がありますが、より堅牢なソリューションが必要になる場合があります。ほとんどのフロントエンド開発者がすでに知っているように、Chrome開発ツールはウェブアプリケーションのデバッグにおいて非常に役立ちますが、*それだけではありません*。Node v6.3.0以降、開発者は組み込みの--inspect
フラグを使用して、開発ツールでノードプログラムをデバッグできます。
node --inspect
を使用してwebpackを起動してみましょう。
npm run build
などのnpmスクリプトは実行できないため、node_modules
の完全なパスを指定する必要があります。
node --inspect ./node_modules/webpack/bin/webpack.js
次のような出力が表示されます。
Debugger listening on ws://127.0.0.1:9229/c624201a-250f-416e-a018-300bbec7be2c
For help see https://node.dokyumento.jp/en/docs/inspector
ブラウザでchrome://inspect
に移動すると、*リモートターゲット*ヘッダーの下に検査したアクティブなスクリプトが表示されます。各スクリプトの下にある「inspect」リンクをクリックして専用のデバッガーを開くか、自動的に接続されるセッション用の*ノード用の専用開発ツールを開く*リンクをクリックします。スクリプトを--inspect
するたびに自動的に開発ツールタブを開く便利なChromeプラグインであるNiM拡張機能も確認できます。
スクリプトの最初のステートメントで中断し、ソースをステップ実行してブレークポイントを設定し、必要に応じてビルドの開始/停止を行うことができる--inspect-brk
フラグを使用することをお勧めします。また、スクリプトに引数を渡すこともできます。たとえば、複数の構成ファイルがある場合は、--config webpack.prod.js
を渡して、デバッグする構成を指定できます。