🐡
vite + electron-builderが使いやすい
electron + react + typescriptのプロジェクトを作るときに良い方法を見つけた。
electronでアプリを作るときに、様々なBoilerplateが存在するが、今は
- webpackよりも、vite,
- electron-forgeよりelectron-builderが主流
らしい (Electron公式はelectron-forgeを推しているが)。
そこでelectron-builderの公式サイトにおすすめされているBoilerplatesを試したが、
どれもTypeScript + Reactを使うとなると設定が面倒だった。
そこで見つけたのが以下。
なんとCLIでReact, TypeScriptを選ぶだけで、一発で環境を作ってくれた
npm create @quick-start/electron
webpackではなくviteなのでビルドもとても速い。メインプロセスとpreloadプロセスのホットリロードまで対応している。
また、公式ではあまり書かれていないが、package.json
を確認するとelectron-builderまで対応していた。
"scripts": {
"format": "prettier --write .",
"lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix",
"typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
"typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
"typecheck": "npm run typecheck:node && npm run typecheck:web",
"start": "electron-vite preview",
"dev": "electron-vite dev",
"build": "npm run typecheck && electron-vite build",
"postinstall": "electron-builder install-app-deps",
"build:unpack": "npm run build && electron-builder --dir",
"build:win": "npm run build && electron-builder --win",
"build:mac": "electron-vite build && electron-builder --mac",
"build:linux": "electron-vite build && electron-builder --linux"
},
個人的に、electron-forgeよりelectron-builderを使いたかったのは、インストーラーをカスタマイズできるからだったため、
以下の設定をelectron-builder.yml
に加えた。
nsis:
artifactName: ${name}-${version}-setup.${ext}
shortcutName: ${productName}
uninstallDisplayName: ${productName}
createDesktopShortcut: always
oneClick": false # add
allowToChangeInstallationDirectory: true # add
を見れば様々なカスタマイズができる。
参考
Discussion