electron-packagerで作成したアプリを立ち上げるとエラーになる

タイトル通りですが、アプリ起動時に以下のようなポップアップが表示されます。アプリそのものは動くのですが、以下の例だとelectron-logファイル見つからないよと言ってます。

じゃその、electron-logファイルどこになるのかと言うとnode_modulesディレクトリに存在しています。全体のディレクトリ構造は以下の通り。

エラーはelectronディレクトリでmove_catディレクトリのアプリをパッケージにしようとした時に発生しています。

で、move_catディレクトリの必要ファイルをelectronディレクトリにコピーして、electronディレクトリの上の階層からelectron-packgerで作成すると問題なく作成できました。当然**-arm64は上の階層に作成されます。

つまり、アプリ関連ファイルとnode_modulesディレクトリは同じ階層にないとパッケージに組み込まれないと言うことですね。

 

admin

 

Wine

Electronで各プラットホーム向けの配布用のアプリを作成するのにWineのインストールが要求(具体的にはWindows用のはず)されますが、じゃWineって何?なのかというとWindows用のAPIを提供して、Windows OS以外でWindows用のアプリケーションを完全互換では無いけれども動かせるオープンソースのアプリケーションのようです。

MacbookでElectronからアプリ起動してもWineが立ち上がるようなので、使い方はいまいちリサーチ必要。

 

admin

Electronのイントロ

初めてのelectron、ほぼ以下のリンクのままですが

https://www.materializer.co/lab/blog/66

electronって何なの? => “Build cross-platform desktop apps with JavaScript, HTML, and CSS”

とelectronのトップページに出ています。

Node.jsがインストールされている前提で、

npm(Node.jsのパッケージ管理)でelectronをインストール、ただし既にインストール済みでした。VScodeあるから?

% npm -v

8.18.0

・実行は作成したプロジェクトの一つ上のディレクトリで、例えば以下のディレクトリ構成でfirst_porjectを実行するならば、

/electron/first_project

/electronディレクトリでコマンド実行

% electron first_project

・ログの取り方はelectron-logをインストールしてファイルに書き出すようにする

% npm install electron-log

こんな感じで使います、

const log = require(‘electron-log’);

log.info(‘Hello, log’);

ログファイルの場所は、

# cat ~/Library/Logs/electronのプロジェクト名/main.log

・配布用の実行ファイル作成はelectron-packager使いますが、なぜか”Error: Cannot find module ‘electron-log’”と言うエラーメッセージウインドーが表示されます。

アプリの実行結果は、こんな感じで間伸びした画面、ほぼ中身ないから。

 

<Node.jsについての説明>

Node.jsはJavaScript用のサーバー機能を提供、electronではChromium(以下の通り)と一緒に使います。

“Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine.”

https://nodejs.dev/en/learn/

 

P.S. 2022/9/10

electronのインストールはローカルインストールにすべきだと

-gオプションでインストールすると将来版数がアップされた時に互換がなくなると管理できなくなるからローカルでインストールすべきと。

・ローカルインストール

% npm install -save-dev electron

・実行

% npx electron <ターゲットディレクトリ>

npxはローカルインストールしたモジュールを実行するためのコマンドです。

 

admin