Electron Forge 6 の紹介
待望の Electron Forge v6.0.0 がリリースされましたことをお知らせします! このリリースは 2018 年以来の Forge のメジャーリリースとなり、GitHub 上のこのプロジェクトは electron-userland
からメインのelectron
Organization に移動されました。
ここでは Electron Forge の新機能と、あなたのアプリでの利用方法についてご紹介します。
Electron Forge とは何ですか?
Electron Forge は、Electron アプリケーションをパッケージ化および頒布するツールです。 これは Electron のビルドツールエコシステムを単一の拡張可能なインターフェイスに統一し、誰でもすぐに Electron アプリを作れるようにします。
主な機能は次のとおりです。
- 📦 アプリケーションのパッケージ化とコード署名
- 🚚 Windows、macOS、Linux のカスタマイズ可能なインストーラー (DMG、deb、MSI、PKG、AppX など)。
- ☁️ クラウドプロバイダ (GitHub、S3、Bitbucket など) 向けの自動公開フロー。
- ⚡️ webpack や TypeScript 向けの使いやすい定型テンプレート
- ⚙️ ネイティブ Node.js モジュールのサポート
- 🔌 拡張可能な JavaScript プラグイン API
Forge の理念やアーキテクチャについては、Why Electron Forge 解説ドキュメントをご覧ください。
v6 の新機能はなんですか?
完全な書き直し
Electron Forge は v1 から v5 まで、現在では廃止されている electron-compile
プロジェクトをベースにしていました。 Forge 6 は、Electron アプリケーションのニーズに合わせて拡張可能な新しいモジュール式アーキテクチャを採用し、プロジェクトを完全に書き直しました。
過去数年間で、Forge v6.0.0-beta
は v5 と同等の機能を達成し、コードの乱れが減り、一般的に採用できるツールになりました。
バージョン 5 以前では、Electron Forge は npm 上に electron-forge
パッケージとして公開していました。 v6 での書き換えから、Forge は代わりに多くの小さなプロジェクトを持つ monorepo プロジェクトとして構成されるようになりました。
公式サポート
これまで Electron のメンテナはビルドツールに関して無関心で、様々なコミュニティパッケージに仕事を任せてきました。 しかし、Electron がプロジェクトとして成熟するにつれ、Electron の新規開発者がアプリを構築し頒布するために必要なツールの理解が難しくなってきました。
Electron 開発者の頒布プロセスを支援するために、私たちは Forge を Electron の公式ですぐに使えるビルドパイプラインとする ことを決めました。
この 1 年間で、私たちは徐々に Forge を Electron の公式ドキュメントに統合してきました。そして最近になって、Forge をかつての electron-userland/electron-forge
から electron/forge レポジトリに移動させました。 これで、いよいよ Electron Forge を一般公開する準備ができました!
はじめましょう
新規 Forge プロジェクトの初期化
新しい Electron Forge プロジェクトの準備は create-electron-app
CLI スクリプトでできます。
- Yarn
- npm
yarn create electron-app my-app --template=webpack
cd my-app
yarn start
npm init electron-app@latest my-app -- --template=webpack
cd my-app
npm start
このスクリプトは、完全な JavaScript のバンドルと、あらかじめ構成されたビルドパイプラインを、my-app
フォルダの Electron プロジェクトに作成します。
詳細については、Forge ドキュメント内の Getting Started ガイドをご参照ください。
上記のスニペットは Forge の Webpack Template を使用するもので、新規 Electron プロジェクトのスタート地点として推奨しています。 このテンプレートは @electron-forge/plugin-webpack
プラグインを中心に構築されており、webpack と Electron Forge を以下の方法で統合しています。
- webpack-dev-server によるローカル開発フローの強化、レンダラーにおける HMR のサポートも含む。
- アプリケーションのパッケージ化の前に webpack バンドル用のビルドロジックの処理。
- webpack のバンドル処理におけるネイティブ Node モジュールのサポートの追加。
TypeScript のサポートが必要な場合は、代わりに Webpack + TypeScript Template の利用を検討してください。