JetBrainsの資料にある通り、RubyMineではRailsに加えてReactもデバッグできます。
- Debug a React application - React | RubyMine
- Debugging React Apps Created With Create React App in WebStorm | The WebStorm Blog
Reactのデバッグについては、公式ドキュメントに
Only for applications created with create-react-app.
Debugging of JavaScript code is only supported in Google Chrome and in other Chromium-based browsers.
とあることから、 create-react-app
で作ったReactアプリしかデバッグできないようも感じます。
ただ、手元で試したところ Vite.jsで作ったReactアプリもデバッグできたため、手順をメモしておきます。
ちなみに、JetBrainsのyoutrackには Vite.js に関するものも登録されているため、合わせてご確認ください。
Support for vite : WEB-46507
また、今回メモした内容よりも良い方法をご存じの方がいらっしゃいましたら、教えていただけるとありがたいです。
目次
環境
以前作成した、React + Rails + Vite.js なSPAアプリを使います。
React + Rails + Vite.js なSPAアプリをモノレポで作ってみた - メモ的な思考的な
今回は、ReactやRailsのバージョンは変えず、 Vite.js まわりをアップデートした上で利用します。
- mac
- バックエンド
- フロントエンド
- TypeScript 4.4.4
- React.js 17.0.2
- React Router 5.2.1
- Vite.js 2.9.1
- vite-plugin-ruby 3.0.9
デバッグするまでの流れ
Railsをdevelopmentで起動するための設定を追加
まずは、Rails を development で起動する設定を行います。
Select Run/Debug Configuration
の枠から Edit Configurations...
を選択します。
次に、以下の図のようにRailsの起動設定を行います。
なお、RubyMineでRailsプロジェクトを読み込んでいれば設定済かもしれません。
Reactを run dev する設定を追加
続いて、同じく Run/Debug Configuration
より、Reactを run dev
で起動するための設定を追加します。
npm
テンプレートにて、プロジェクトの package.json
を参照して run dev
するような設定とします。
なお、今回の package.json
の scripts
はこんな感じで、Reactは vite
を使って起動するようになっています。
{ "name": "frontend", "version": "0.0.0", "scripts": { "dev": "vite", "build": "tsc && vite build", "serve": "vite preview" }, // (略) }
Debugボタンで、RailsとReactを起動
React
Reactタブの Process Console | Scripts
より、Cmd + Shift を押しながらリンクをクリック
続いて、Reactタブにある Process Console | Script
タブを開きます。
次に、Consoleで表示されている Local: http://localhost:7031/vite/
*1 のリンクに対し、 Cmd + Shift
を押しながらクリックします*2。
すると、何も設定されていないブラウザが開きます。
ただ、この時点では Local
で指定されていたURLを開くので、何も表示されていません。
ちなみに、この時点でRubyMineを見ると、 vite
タブが新しく追加されています。
また、JavaScript Debug の configuration が追加されています。内容はこんな感じです。
ブレークポイントを仕込む
今回はRailsとReact、両方にブレークポイントを仕込みます。
React
起動したデバッグ用のブラウザに、アプリのURLを入力する
デバッグの準備ができたので、先ほど起動したデバッグ用のブラウザに、今回のアプリのURL http://localhost:7100
を入力します。
すると、Reactの画面が表示されます。
続いて、 Resume Program
ボタンを押して次のブレークポイントまで飛ばすと、今度はReactのブレークポイントで止まります。
ブレークポイント時点での変数などの情報も確認できます。
以上より、React + Rails + Vite.js な構成でも、RubyMineでReactとRailsをデバッグできることが分かりました。
ソースコード
Githubに上げました。
https://github.com/thinkAmi-sandbox/react_with_vite_rails-sample
今回試したソースコードは、こちらのプルリクになります。
https://github.com/thinkAmi-sandbox/react_with_vite_rails-sample/pull/2