Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: electron:serve起動時にエディタを起動しないオプションを追加 #2309

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

sabonerune
Copy link
Contributor

内容

いつからかはっきり覚えていないのですがVSCodeを使用したメインプロセスのデバッグの起動が自分の環境では非常に遅くなりました。(自分のPCのスペックが低いというのもありますが…)
恐らくデバッガが開発サーバーを監視していることが原因だと思います。

このPRで開発サーバーの起動とElectronの起動を分離することでメインプロセスデバッグ時の起動を高速化します。

その他

SKIP_LAUNCH_EDITOR環境変数に1を設定したうえでelectron:serveを実行するとエディタの起動とメインプロセスのリロードが行われなくなります。
この状態で npx electron . --no-sandboxを実行するとエディタが起動します。
そのためのlaunch.template.jsontasks.template.json追加しました。

VITE_DEV_SERVER_URLはビルド時に埋め込まれます。

レンダラープロセスのsourcemapが正しく検出できていなかったので変更しました。

@sabonerune sabonerune requested a review from a team as a code owner October 22, 2024 09:15
@sabonerune sabonerune requested review from Hiroshiba and removed request for a team October 22, 2024 09:15
@Hiroshiba
Copy link
Member

Hiroshiba commented Oct 22, 2024

起動が高速になるオプションを用意するのは良さそうに思いました!!
ただ起動方法が増えるといつの間にかデグレッてしまう可能性もあると思うので、ドキュメントで軽く案内しときたい気持ちが。

現状ちょっとわかってないので質問させてください 🙇

Launch Electron Main/Renderer without electron:serveを実行すると速い、という認識で合ってそうでしょうか?
これは何で速いんでしょう・・・?

というのも、僕の理解だとこれを実行すると↓の2つが実行されて、
Attach to Renderer Process
Launch Electron without electron:serve
2つ目の方はさらにpreLaunchTaskで
SKIP_LAUNCH_EDITOR=1 npm run electron:serve
が実行されるという理解です。

ここでまずwithout electron:serveという名前なのにelectron:serveが実行されてるのが違和感ありました。
(つまり、僕の認識が間違ってそうな気がしてます)

で、SKIP_LAUNCH_EDITORを指定すると名前から察するに「エディターが起動しない」だと思うのですが、さらにLaunch Electron without electron:serve内で
electron . --no-sandbox
が実行されていて、これは @sabonerune さんの仰るエディタが起動するだと思うので、利点を消してるように見えるんですよね。

つまり今mainブランチで実装されているものと、今回プルリクエストで追加されたものが全く同じ挙動するような気がしてて、なぜ速くなるのかわかってない感じです。

(たぶん僕が開発サーバーの起動とElectronの起動を分離するというのがなんなのかを理解できてないんだと思ってます。。知識が不足しててすみません。。 🙇 )

@sabonerune
Copy link
Contributor Author

@Hiroshiba
そもそもの起動が遅い原因はelectron:serveをF5キーで起動するとVSCodeのデバッガがViteの動作(トランスコンパイルやeslint等の実行)をトレースしてしまうことが原因だと考えています。

これを回避するためデバッガを通さずにelectron:serveを起動してElectronのみをデバッガで起動できるようにするというのがこのPRの意図です。

追加したLaunch Electron Main/Renderer without electron:serveはこの操作を自動化するためのものです。
(preLaunchTaskで起動したelectron:serveはデバッグの対象にならずElectronを終了しても起動し続ける)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants