読者です 読者をやめる 読者になる 読者になる

totorajの開発日記

僕がなんかメモる

electron-packagerでWindows用の実行ファイルを作る

タイトル通りです。

環境は下記の通りです。

  • OS: Windows10(64bit)
  • node: v4.4.3
  • npm: v2.15.1
  • Electron: v1.0.1

OSがWindows以外の方にはまったく役に立たない記事です!ごめんなさい。

フォルダ構成はこんなかんじ。

demo/
 ├─source/
 │  ├─package.json
 │  ├─main.js
 │  ├─icon.ico
 │  └─index.html
 └─build.js

sourceフォルダがElectronで実行するフォルダです。

手順

コマンドはすべてdemoフォルダ上から実行しています。

electron-packagerをインストール

さくっとインストール

npm install electron-packager

ソースのフォルダにインストールするとこのモジュールまで出力されてしまうので別のフォルダにした方がいいと思います。

build.jsを書く

コマンドをうってもいいんだけど結構長くなるし毎回コマンドうつのは面倒くさいのでjsにしてnodeで実行します。

ソースコード

build.jsのソースコードです。

環境に合わせて書き換えてください。

const packager = require("electron-packager");
// 毎回オプションを書き直すのは面倒くさいのでpackage.jsonから引っ張ってくる
const package = require("./source/package.json");

packager({
    name: package["name"],
    dir: "./source",// ソースフォルダのパス
    out: "./dist",// 出力先フォルダのパス
    icon: "./source/icon.ico",// アイコンのパス
    platform: "win32",
    arch: "x64",
    version: "1.0.1",// Electronのバージョン
    overwrite: true,// 上書き
    asar: false,// asarパッケージ化
    "app-version": package["version"],// アプリバージョン
    "app-copyright": "Copyright (C) 2016 "+package["author"]+".",// コピーライト
    
    "version-string": {// Windowsのみのオプション
        CompanyName: "totoraj.net",
        FileDescription: package["name"],
        OriginalFilename: package["name"]+".exe",
        ProductName: package["name"],
        InternalName: package["name"]
    }
    
}, function (err, appPaths) {// 完了時のコールバック
    if (err) console.log(err);
    console.log("Done: " + appPaths);
});

APIの詳細は下記のelectron-packagerのドキュメントをどうぞ。

https://github.com/electron-userland/electron-packager/blob/master/docs/api.md

build.jsを実行

node build.js

下記のような出力が出れば成功です。

Packaging app for platform win32 x64 using electron v1.0.1
Done: dist\Test-win32-x64

出力先フォルダにexeの入ったフォルダが生成されているはずです。

その他

アイコンについて

アイコンはプラットフォームに応じて適したものにする必要があります。

Windowsならicoファイルです。

icoファイルに関しては調べればいくらでも情報が出てきます。

また、Windows以外の環境でWindows用のexeを出力してもアイコンが適用されないようです。

electron-packagerのドキュメントを参考にしてください。

https://github.com/electron-userland/electron-packager#building-windows-apps-from-non-windows-platforms