「Electron パッケージガイドライン」の版間の差分
(→Electron システムを使う: electron-builder と system electron の併用についてを翻訳して追加) |
|||
43行目: | 43行目: | ||
* {{ic|electronVersion}} を {{ic|/usr/lib/electron/version}} の内容から、先頭の {{ic|v}} を除いたものに変更します。 |
* {{ic|electronVersion}} を {{ic|/usr/lib/electron/version}} の内容から、先頭の {{ic|v}} を除いたものに変更します。 |
||
− | これを適用するパッケージ {AUR|rocketchat-desktop}} |
+ | これを適用するパッケージ {{AUR|rocketchat-desktop}} {{AUR|ubports-installer-git}} |
[https://www.electron.build/configuration/configuration electron-builder 設定] |
[https://www.electron.build/configuration/configuration electron-builder 設定] |
||
49行目: | 49行目: | ||
また、CLI を使用して、以下のように設定を変更・追加することもできます。 |
また、CLI を使用して、以下のように設定を変更・追加することもできます。 |
||
− | ./node_modules/.bin/electron-builder --linux --x64 --dir $dist -c.electronDist=$electronDist -c.electronVersion=$electronVer |
+ | ./node_modules/.bin/electron-builder --linux --x64 --dir $dist -c.electronDist=$electronDist -c.electronVersion=$electronVer |
これらのオプションをすべて指定しないと、動作しないので注意してください。 |
これらのオプションをすべて指定しないと、動作しないので注意してください。 |
||
− | これを適用するパッケージ {AUR|deezloader-remix-git}} です。 |
+ | これを適用するパッケージ {{AUR|deezloader-remix-git}} です。 |
== アーキテクチャ == |
== アーキテクチャ == |
2022年2月21日 (月) 13:38時点における最新版
32ビット – CLR – クロス – Eclipse – Electron – Free Pascal – GNOME – Go – Haskell – Java – KDE – カーネル – Lisp – MinGW – Node.js – ノンフリー – OCaml – Perl – PHP – Python – R – Ruby – Rust – VCS – ウェブ – Wine
このドキュメントでは Electron の PKGBUILD を書く時の標準とガイドラインについて触れています。
目次
Electron システムを使う
Arch Linux には electron と electron2AUR パッケージがあり、これらを使うことでシェルスクリプトのラッパーを介して Electron アプリケーションを実行できます:
#!/bin/sh exec electron /path/to/appname/ "$@"
appname/
ディレクトリあるいは appname.asar
という名前のファイルバンドルは resources/app/
フォルダ (または resources/app.asar
) などのビルド済み Electron アプリケーションとして存在します。他のファイルは全て Electron ランタイムのコピーであり、パッケージからは削除しても問題ありません。
コンパイル済みの拡張をシステムの Electron でビルド
一部の Electron アプリケーションは Electron ランタイムにリンクされたコンパイル済みのネイティブ拡張を含んでおり、適切なバージョンの Electron を使ってビルドする必要があります。npm/yarn は常にビルド済みのプライベートな Electron コピーでビルドしてしまうため、package.json
から Electron の依存関係にパッチをあてて、システムの Electron と同じバージョンを使うようにしてください。ビルドシステムは必要なビルド済みコピーをダウンロードして、ネイティブ拡張をコンパイルし、パッケージを作成するので、package()
で不要なファイルを削除します。
もしくは、package.json
から Electron の依存を削除して、npm の実行前に環境変数を設定することもできます:
export npm_config_target=$(cat /usr/lib/electron/version | tail -c +2) export npm_config_arch=x64 export npm_config_target_arch=x64 export npm_config_disturl=https://atom.io/download/electron export npm_config_runtime=electron export npm_config_build_from_source=true HOME="$srcdir/.electron-gyp" npm install
HOME
を $srcdir
のパスに設定することで、ビルド時に HOME
ディレクトリにファイルが作られなくなります。.electron-gyp
キャッシュを利用するコマンドのパスは調整してください。
詳しくは こちら を参照。
electron-builder と system electron の併用について
多くのプロジェクトでは、Javascript ファイルと Electron バイナリのビルドとパッケージ化に electron-builder を使用しています。デフォルトでは、electron-builder はパッケージ管理ファイル (例:package.json
) で定義されている electron の全バージョンをダウンロードします。これは、electron バイナリを、システム electron が使うためで、一見、帯域幅を節約したくなりますが、それは望ましくありません。electron-builder は、Electron のカスタムパスとアプリケーションがパッケージされているバージョンをそれぞれ指定するために、electronDist
と electronVersion
のコンフィギュレーションを提供します。
electron-builder の設定ファイル(例:electron-builder.json
)を探して、以下の設定を追加してください。
- electron の場合は
/usr/lib/electron
に、electron2AUR の場合は/usr/lib/electron2
に設定してください。 electronVersion
を/usr/lib/electron/version
の内容から、先頭のv
を除いたものに変更します。
これを適用するパッケージ rocketchat-desktopAUR ubports-installer-gitAUR
また、CLI を使用して、以下のように設定を変更・追加することもできます。
./node_modules/.bin/electron-builder --linux --x64 --dir $dist -c.electronDist=$electronDist -c.electronVersion=$electronVer
これらのオプションをすべて指定しないと、動作しないので注意してください。
これを適用するパッケージ deezloader-remix-gitAUR です。
アーキテクチャ
PKGBUILD#arch を見てください。
コンパイル済みのネイティブ拡張を含む Electron パッケージはアーキテクチャに依存します。他のパッケージはアーキテクチャに依存しません。
パッケージにビルド済みの Electron のコピーが含まれる場合、常にアーキテクチャに依存しています。
ディレクトリ構造
パッケージがアーキテクチャ依存の場合、resources/app/
ディレクトリを /usr/lib/appname/
にインストールしてください。非依存の場合は /usr/share/appname/
を使ってください。
パッケージにビルド済みの Electron のコピーを含む場合、全て /opt/appname
にコピーしてください。