経緯
下記の記事でts→js移行したのだが、ビルドはできた。
しかし、実行時にエラーが。。。
エラー内容
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用のビルドをしてくれるようになり、ちゃんと実行できるようになった。
参考サイト
webpack.config.js の書き方をしっかり理解しよう - Qiita
感想・雑記
webpack、未だに設定周りが理解できない。
webpack職人ができるのも頷ける。
今回の件で、targetの指定を間違えるとどういうことになるのかは理解できた。
コピペだけ繰り返していたから、こういう目に合うんだろうなぁ~とは感じた。
とりあえず、typescriptに移行できたのは、素直に嬉しい。
js→tsへの変換で四苦八苦してた頃を思い返すと、かなり楽に移行できたなと思う。