electron-builderでタスクトレイ用のアイコンをインストーラーに取り込むには?

Electron での開発は、いつも electron-builder がすぐに使い始められる electron-webpack-quick-start を使っている。

https://github.com/electron-userland/electron-webpack-quick-start

ただ、このテンプレートでは index.html が自動生成されたり、webpack の config が見当たらなかったりと、結構クセがある。

今回、タスクトレイに常駐するアプリを作っていて、そのためのアイコンを用意したのだが、開発時には参照できていたアイコンがインストーラ経由だと参照エラーに。ビルド生成物を見ると確かにアイコンが画像が含まれていなさそう。

electron-webpackelectron-builder の文書を見たところ、アプリのアイコンを指定する方法は見つけたが、その他の画像についての記載は見当たらず。

結局 extraResources というのを使ってコピーすれば良いようだった。

https://www.electron.build/configuration/contents#extrafiles

この設定は package.json の build に書く。

  "build": {
    "extraResources": [
      {
        "from": "icon.png",
        "to": "resources",
        "filter": ["**/*"]
      }
    ]
  }

その上で、production 時は下記パスを参照するように切り替える。

path.join(process.resourcesPath, '/icon.png') 

コメントを残す