配布用アプリのパス不具合を解決したdescjop 0.1.2をリリースしました&Electronアプリ起動に関する補足情報


昨日に続いて早速descjop 0.1.2をリリースしたんですが、それについての補足情報なども。

どうやってElectronアプリを起動しているか

Electronアプリケーションを開発中は、任意の場所にインストールされたElectronへのパスに、JavaScriptやHTMLを含むディレクトリを指定することでElectronアプリとして起動させることができます。

descjopでは、こんな感じです。

  • プロジェクトディレクトリ以下にelectronというディレクトリを作成し、そこへelectron本体をダウンロード
  • 開発モードで起動する際は、そこへのパスとともに、それにアプリケーションディレクトリappを指定することで起動
  • app以下は、変数名の書き換え対策のexterns.jsとcljsbuild-main.jsというコンパイル時に出力される依存ライブラリ込みのJavaScriptファイルが動的に生成されます
    • それ以外には、プロジェクト作成時に生成されるindex.htmlとエントリポイントとなるmain.js、設定ファイルとなるpackage.jsonが存在しています
  • つまり、Electronアプリに必要なのはappディレクトリ以下のみ

ただ、開発時のような起動方法だとElectronアプリとして配布する場合に面倒な感じになります。

Electronアプリとして配布する場合

そこで、下記

に従い、出力用のパッケージングをします。

具体的にはアプリケーションが自動で読み込める位置にJavaScriptやHTMLを含むディレクトリ(もしくはパッケージされたファイル)を配置することや、アイコン、名称を変更することになります。

対応策

で、その際に、どうもdescjop 0.1.1までのバージョンのテンプレートではパス読み込みの返される結果が変わってしまう現象があり、修正をしました。

上記ドキュメントを参考に相対的にindex.htmlのディレクトリを求めるように書き換えました。

該当箇所のコードは下記のような感じです。

(.loadUrl @∗win∗ (str "file://" (.resolve path (js∗ "__dirname") "../index.html")))

ということで、今後使われる方は0.1.2以降をご利用ください(というかlein newすると自動で最新版が選択されるので、気にする必要はありません)

バージョン0.1系は、現時点の細かなバグフィックスを中心に進めたいと思っています。

一連のブログ記事

Comments are closed.