エコシステム 2023 総括
2023 年の Electron の開発者エコシステムの改善と変化を振り返ります。
過去数ヶ月で、Electron アプリの開発者体験を強化するために、Electron エコシステム全体でいくつかの変更を醸成してきました。 Electron HQ からの最新の追加の速報はこちらです。
Electron Forge 7 とその先
Electron Forge 7、Electron アプリケーションのパッケージ化と頒布のためのオールインワンツールの最新メジャーバージョンが利用できるようになりました。
Forge 6 は v5 からの完全な書き換えでした。v7 のスコープは小さいですが、いくつかの改善点が含まれています。 今後も、破壊的変更が必要になり次第、Forge のメジャーバージョンを発行していきます。
詳細については、GitHub 上の Forge v7.0.0 変更ログ をご覧ください。
破壊的変更
- macOS の公証を
notarytool
に切り替えました: 2023-11-01 時点で、Apple は macOS の公証のためのaltool
をレガシーとしました。今回のリリースでは Electron Forge からこれを完全に削除します。 - 最小の Node.js を v16.4.0 に引き上げました: 今回のリリースでは、Node.js のバージョンの最小要件を 16.4.0 に設定しました。
electron-prebuilt
とelectron-prebuilt-compile
のサポートを終了しました:electron-prebuilt
は Electron の npm モジュールの元々の名前で, これは v1.3.1 でelectron
に置き換えられていました。electron-prebuilt-compile
はその DX 機能が強化された代替バイナリでしたが、最終的にプロジェクトとして放棄されました。
ハイライト
- Google Cloud Storage パブリッシャー: Electron Forge は静的自動更新のサポートを強化する一環として、Google Cloud Storage への直接公開をサポートしました!
- ESM の forge.config.js のサポート: Electron Forge は ESM の
forge.config.js
ファイルをサポートするようになりました。 (P.S. Electron 28 での ESM エントリポイントのサポートをご期待 ください。) - Maker を並列実行するようになりました: Electron Forge 6 では、Maker は ✨ レガシー✨ な理由で直列実行していました。 それ以来、副作用のない Make ステップの並列化をテストしてきました。これで同一プラットフォーム向けに複数のターゲットをビルドするときの速度が向上しているとわかるでしょう!
🙇 Forge の設定で GCS パブリッシャーと ESM の両方のサポートに貢献していただいた mahnunchik** さんに多大な感謝を送ります!
静的ストレージの自動更新の改善
Squirrel.Windows と Squirrel.Mac は、Electron に組み込まれた autoUpdater
モジュールの土台となるプラットフォーム固有のアップデーター技術です。 両方のプロジェクトは次の 2 つの方法で自動更新をサポートしています。
- Squirrel 互換のアップデートサーバー
- 静的ストレージプロバイダ (AWS、Google Cloud Platform、Microsoft Azure など) でホストされているマニフェスト URL。
従来のアップデートサーバーの手法は Electron アプリに推奨されるアプローチ (かつ更新ロジックの追加カスタマイズを提供するもの) でしたが、これには大きな欠点があります。それは、アプリがクローズドソースの場合、独自のサーバーインスタンスをメンテナンスする必要があることです。
一方、静的ストレージの手法は常に可能でしたが、Electron 内で文書化されておらず、Electron のツールパッケージの間でサポートされていませんでした。
@MarshallOfSound
さんの素晴らしい働きにより、サーバーレス自動アプリ更新のアップデートのシナリオが大幅に能率化されました。
- Electron Forge の Zip と Squirrel.Windows メーカーは、
autoUpdater
互換の更新マニフェストを出力する設定ができるようになりました。 update-electron-app
の新しいメジャーバージョン (v2.0.0) で、これらの生成されたマニフェストを update.electronjs.org サーバーの代替として読み込めるようになりました。
メーカーとパブリッシャーが更新マニフェストをクラウドファイルストレージへアップロードするように設定すれば、以下の数行の設定で自動更新を有効化できます。
const { updateElectronApp, UpdateSourceType } = require('update-electron-app');
updateElectronApp({
updateSource: {
type: UpdateSourceType.StaticStorage,
baseUrl: `https://my-manifest.url/${process.platform}/${process.arch}`,
},
});
📦 もっと知りたいですか? 詳細なガイドにつきましては、Forge の自動更新のドキュメント をご参照ください。