エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

js→typescript移行で実行時に`Electron failed to install correctly, please delete node_modules/electron and try installing again`

経緯

下記の記事でts→js移行したのだが、ビルドはできた。
しかし、実行時にエラーが。。。

suzaku-tec.hatenadiary.jp

エラー内容

App threw an error during load
Error: Electron failed to install correctly, please delete node_modules/electron and try installing again
    at getElectronPath (webpack://rsship/./node_modules/electron/index.js?:14:11)
    at eval (webpack://rsship/./node_modules/electron/index.js?:18:18)
    at Object../node_modules/electron/index.js (E:\dev\js\rsship\dist\main.js:1337:1)
    at __webpack_require__ (E:\dev\js\rsship\dist\main.js:1700:42)
    at eval (webpack://rsship/./src/main.ts?:3:10)
    at Object../src/main.ts (E:\dev\js\rsship\dist\main.js:1523:1)
    at __webpack_require__ (E:\dev\js\rsship\dist\main.js:1700:42)
    at E:\dev\js\rsship\dist\main.js:1727:37
    at E:\dev\js\rsship\dist\main.js:1730:12
    at webpackUniversalModuleDefinition (E:\dev\js\rsship\dist\main.js:11:20)

対応方法

webpack.config.jsのtarget: "node"target: "electron-renderer"に変更したら動作した。

targetは、特定の環境用にwebpackがいい感じでビルドするために必要らしい。
今回は、nodeを指定していたため、electron用のビルドになっておらず、実行時にエラーになった。
electron-rendererを指定することで、electron用のビルドをしてくれるようになり、ちゃんと実行できるようになった。

参考サイト

electron always "Electron failed to install correctly, please delete node_modules/electron and try installing again" · Issue #20731 · electron/electron · GitHub

webpack.config.js の書き方をしっかり理解しよう - Qiita

感想・雑記

webpack、未だに設定周りが理解できない。
webpack職人ができるのも頷ける。

今回の件で、targetの指定を間違えるとどういうことになるのかは理解できた。
コピペだけ繰り返していたから、こういう目に合うんだろうなぁ~とは感じた。

とりあえず、typescriptに移行できたのは、素直に嬉しい。
js→tsへの変換で四苦八苦してた頃を思い返すと、かなり楽に移行できたなと思う。