⚒️
Electron-builderでパッケージに「含めたくない」ファイルを指定する
Electronでアプリ開発を行っているうちに、アプリとは関係ないファイルがソースフォルダに含まれている ということも多いと思います。
そういうとき、Electron-builderでパッケージに「含めたくない」ソースファイルがあるのではないでしょうか?
今回のはそういうときのpackage.json
の書き方です。
Electron-builderのファイル構成
まずElectron-builderのファイル構成の話し。Electron-builderでは、次のようなコマンドでJavaScriptを実行可能な形式でまとめてくれます。
Windowsパッケージをビルドする場合(事前にElectron-Builderをインストールしておくこと)
npx electron-builder --win --x64 --dir
ただし、何もせずにこのコマンドを実行すると、プロジェクトフォルダのすべてのファイルをパッケージしてしまうため、過去の配布用アーカイブファイルや、テストのスクリプトを含めてしまいます。
asar
ソースファイル一式はresources\app.asar
というファイルに格納されます。この中身はnpmでインストール可能なasarというコマンドを使って展開することができます。
asarコマンドの使用例
asar extract .\dist\win-unpacked\resources\app.asar .\dist\asar\
asarファイルに含めないパッケージを指定する
asarファイルに特定のファイルを含めたくない という場合は、package.json
にその旨を指定します。
Electron-builderが見てくれるpackage.json
の設定にFilesという項目があるので、そこに値を設定します。「含めたくない」ファイルおよびフォルダのパスを指定する場合は、ファイル名の先頭に!を記述します。
package.json
{
"//" : "前略",
"devDependencies": {
"electron": "^18.1.0",
"electron-builder": "^23.0.3"
},
"build": {
"//" : "以下の記述でファイル・フォルダを除外します(ここではdist, outフォルダとREADME.mdを除外している)"
"files": [
"!dist/*",
"!out/*",
"!README.md",
],
"win": {
"icon": "res\\Application.png",
"target": "portable"
}
}
}
このように記述後npx electron-builder --win --x64 --dir
を実行し、出力されたresources/app.asar
を展開すると、しっかりこれらのフォルダは含まれていません。
Discussion