メインコンテンツへ飛ぶ

ビルドシステムの概要

Electronは、プロジェクト生成にGNを用い、ビルドには ninjaを使用します。 プロジェクト設定は.gn.gni ファイルを見てください。

GN ファイル

以下のgnファイルにはElectronのビルトのメインルールを含んでいます:

  • BUILD.gn は、Electron 自身をどのようにビルドするかを定義し、Chromium とリンクするデフォルト設定を含んでいます。
  • build/args/{debug,release,all}.gn には、Electronをビルドするためのデフォルトのビルド引数が含まれています。

コンポーネントのビルド

Chromiumはとても巨大なプロジェクトですので、最終的なリンクの段階でかなりの時間を要し、それが開発を難しくしてしまいます。 これを解決するために、Chromiumはそれぞれのコンポーネントを別々の共有ライブラリとしてビルドを行う、「コンポーネントビルド」を採用しており、これによりファイルサイズとパフォーマンスを犠牲にすることでビルドを高速で行っています。

ElectronはChromiumビルドオプションを継承します。 Debug ビルドでは、ライブラリはリンク時間を節約するために、Chromium のコンポーネントの共有ライブラリにバイナリがリンクされます。Release ビルドではバイナリは静的ライブラリにリンクされるので、適したファイルサイズとパフォーマンスを得ることができます。

テスト

注意 この章は古い内容であり、この情報は GN でビルドされた Electron には該当しません。

プロジェクトのコーディングスタイルは以下で確認できます。

$ npm run lint

以下で機能テストをします。

$ npm test

Electron のソースコードを変更したため再ビルドとテストを行う場合は以下を実行します。

$ npm run build && npm test

Mocha の排他テスト (exclusive tests) 機能を使用することで、特定のテストやブロックが切り離され、連続したテストを早く実行できます。 以下のような .onlydescribeit 関数呼び出しに加えます。

describe.only('some feature', () => {
// ... このブロックのテストのみ実行されます
})

他に、Mocha の grep オプションで指定した正規表現に一致したテストのみを実行できます。

$ npm test -- --grep child_process

ネイティブモジュール (runas など) を含むテストは、デバッグビルドでは実行できません (詳細は #2558 を参照)。リリースビルドでは動作します。

リリースビルドでテストを行うには、以下のようにします。

$ npm test -- -R