Electron のバージョン管理ツール兼ランチャー作りました
◆ evm: インストール・アンインストールとインストール済みバージョンの表示
◆ evml: 指定バージョンの Electron で起動
◆ evml: 指定バージョンの Electron で起動
Electron って本体サイズが大きいのでアプリごとにインストールするとすごくサイズを取られます
VSCode みたいな一般的なツールならそれでいいのですけど 自分で作ってるものだとちょっとしたものがいくつもある感じなので無駄が多くなります
なので Node.js や PHP みたいなランタイムとして複数アプリで使い回すことを考えてます
とは言っても 新しいバージョンが出たらそれ以降に作るものは新しいバージョンにするので アプリごとではないですが適度にバージョンも増えます
そうなるとどのアプリがどのバージョンというのを管理する必要が出てきます
また 作った環境とは別の PC で使いたいときにインストールする手間も減らしたいです
バージョン管理とランチャーツールがあったら便利かなーと思って思いつきで作りました
3, 4 時間程度で作ったシンプルなものなので ほぼ最低限の機能です
evm はバージョン管理を行うコマンドで Node.js のバージョン管理ツールに近いイメージです
evml はランチャーで このコマンドの引数にアプリを指定することで指定のバージョンで起動できます
インストールをするには次のようなコマンドを入力します
バージョン名は electron-releases からチェックします
tag_name, version, npm_dist_tags のどれかに一致したらそのバージョンとしてインストールします
electron-releases は毎回最新を取得でもいいのですが 一応余計な通信を減らすためにキャッシュすることにしています
キャッシュは releases.json ファイルです
このファイルを更新するには update コマンドを使います
アンインストールする場合は latest などのタグは使えず tag_name の名前のみ受け付けます
インストール済みバージョンの一覧を表示するには list コマンドを使います
インストールしたバージョンは evm フォルダの electrons フォルダに配置され ここのフォルダ一覧を表示してるだけです
evm を使わずに手動で追加や削除しても大丈夫です
これら以外のコマンドを使った場合は使い方のヘルプメッセージが出ます
初回起動時は Electron のバージョンを聞かれるので入力します
未インストールならインストール確認されるので yes とか ok とか入力するとインストールされます
一度起動すると バージョン情報が保存されます
パスに対するバージョンを保存しているのでパスを変えない限りはプロンプトなしで直接 Electron が起動します
バージョン情報は launch-version.json に保存しています
途中でバージョンを変えたい場合はここを直接編集できます
対象のパスの行を削除すると再びプロンプトが出るようになります
バージョンセレクタなども Electron にして GUI アプリにしようとも考えましたが 起動が遅くなったり バージョン管理ツール自身の Electron バージョンが必要になったり複雑化するのでシンプルに CUI にしてます
evm キーにバージョン名を書いておけば 初回起動時にプロンプトを出す代わりに指定したバージョンを使います
あくまで初回起動時のみで 以降は初回起動時のバージョンを保存し launch-version.json から参照するので途中で evm キーを更新しても起動バージョンは変わりません
launch-version.json の方を変える必要があります
フォルダや package.json だと cmd ファイルへドロップするかコマンドラインからの起動になります
VSCode みたいな一般的なツールならそれでいいのですけど 自分で作ってるものだとちょっとしたものがいくつもある感じなので無駄が多くなります
なので Node.js や PHP みたいなランタイムとして複数アプリで使い回すことを考えてます
とは言っても 新しいバージョンが出たらそれ以降に作るものは新しいバージョンにするので アプリごとではないですが適度にバージョンも増えます
そうなるとどのアプリがどのバージョンというのを管理する必要が出てきます
また 作った環境とは別の PC で使いたいときにインストールする手間も減らしたいです
バージョン管理とランチャーツールがあったら便利かなーと思って思いつきで作りました
3, 4 時間程度で作ったシンプルなものなので ほぼ最低限の機能です
使い方
evm と evml の 2 つのコマンドがありますevm はバージョン管理を行うコマンドで Node.js のバージョン管理ツールに近いイメージです
evml はランチャーで このコマンドの引数にアプリを指定することで指定のバージョンで起動できます
evm
機能はインストールとアンインストールとインストール済みの表示ですインストールをするには次のようなコマンドを入力します
evm install latest
evm install v5.0.8
evm install 4-2-x
バージョン名は electron-releases からチェックします
tag_name, version, npm_dist_tags のどれかに一致したらそのバージョンとしてインストールします
electron-releases は毎回最新を取得でもいいのですが 一応余計な通信を減らすためにキャッシュすることにしています
キャッシュは releases.json ファイルです
このファイルを更新するには update コマンドを使います
evm update
アンインストールする場合は latest などのタグは使えず tag_name の名前のみ受け付けます
evm uninstall v5.0.8
インストール済みバージョンの一覧を表示するには list コマンドを使います
evm list
インストールしたバージョンは evm フォルダの electrons フォルダに配置され ここのフォルダ一覧を表示してるだけです
evm を使わずに手動で追加や削除しても大丈夫です
これら以外のコマンドを使った場合は使い方のヘルプメッセージが出ます
evml
引数には package.json か package.json があるフォルダか asar ファイルを指定しますevml example-app\package.json
evml C:\tmp\example-app
evml /path/to/example-app.asar
初回起動時は Electron のバージョンを聞かれるので入力します
未インストールならインストール確認されるので yes とか ok とか入力するとインストールされます
C:\tmp\evm>evml test
Electron version: 5.0.8
"v5.0.8" はインストールされていません インストールしますか?
一度起動すると バージョン情報が保存されます
パスに対するバージョンを保存しているのでパスを変えない限りはプロンプトなしで直接 Electron が起動します
バージョン情報は launch-version.json に保存しています
途中でバージョンを変えたい場合はここを直接編集できます
対象のパスの行を削除すると再びプロンプトが出るようになります
バージョンセレクタなども Electron にして GUI アプリにしようとも考えましたが 起動が遅くなったり バージョン管理ツール自身の Electron バージョンが必要になったり複雑化するのでシンプルに CUI にしてます
package.json の evm キー
evml は package.json の evm キーに対応していますevm キーにバージョン名を書いておけば 初回起動時にプロンプトを出す代わりに指定したバージョンを使います
あくまで初回起動時のみで 以降は初回起動時のバージョンを保存し launch-version.json から参照するので途中で evm キーを更新しても起動バージョンは変わりません
launch-version.json の方を変える必要があります
関連付け
package.json やフォルダは関連付けができませんが asar は拡張子で関連付けができるので ダブルクリックで起動もできますフォルダや package.json だと cmd ファイルへドロップするかコマンドラインからの起動になります