📝 Update some Japanese translated docs.
[ci skip]
This commit is contained in:
parent
c7a89b6e29
commit
4702b3e0c7
3 changed files with 37 additions and 35 deletions
|
@ -1,10 +1,14 @@
|
||||||
|
使用している Electron のバージョンに応じたドキュメントを使うように確認してください。
|
||||||
|
ドキュメントのバージョン番号はページの URL の一部になっています。
|
||||||
|
そうでない場合、おそらくご使用の Electron のバージョンと互換性のない API 変更を含んだ development ブランチのドキュメントを使っているものと思われます。
|
||||||
|
その場合、atom.io の [available versions](http://electron.atom.io/docs/) リストにある別のバージョンのドキュメントに切り替えることができます。また GitHub で閲覧している場合、"Switch branches/tags" ドロップダウンを開いて、バージョンに対応したタグを選ぶこともできます。
|
||||||
|
|
||||||
## FAQ
|
## FAQ
|
||||||
|
|
||||||
頻繁に聞かれる質問がありますので、issueを作成する前にこれをチェックしてください。
|
頻繁に聞かれる質問がありますので、issueを作成する前にこれをチェックしてください。
|
||||||
|
|
||||||
* [Electron FAQ](faq/electron-faq.md)
|
* [Electron FAQ](faq/electron-faq.md)
|
||||||
|
|
||||||
|
|
||||||
## ガイド
|
## ガイド
|
||||||
|
|
||||||
* [サポートするプラットフォーム](tutorial/supported-platforms.md)
|
* [サポートするプラットフォーム](tutorial/supported-platforms.md)
|
||||||
|
@ -18,8 +22,6 @@
|
||||||
* [Pepper Flashプラグインを使用する](tutorial/using-pepper-flash-plugin.md)
|
* [Pepper Flashプラグインを使用する](tutorial/using-pepper-flash-plugin.md)
|
||||||
* [Widevine CDMプラグインを使用する](tutorial/using-widevine-cdm-plugin.md)
|
* [Widevine CDMプラグインを使用する](tutorial/using-widevine-cdm-plugin.md)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# チュートリアル
|
# チュートリアル
|
||||||
|
|
||||||
* [クイックスタート](tutorial/quick-start.md)
|
* [クイックスタート](tutorial/quick-start.md)
|
||||||
|
|
|
@ -21,13 +21,13 @@ electron/resources/app
|
||||||
└── index.html
|
└── index.html
|
||||||
```
|
```
|
||||||
|
|
||||||
`Electron.app` (または Linux上では、`electron`、Windows上では、 `electron.exe`)を実行すると、Electronはアプリケーションを開始します。The `electron` ディレクトリを最終的なユーザーに提供するために配布します。
|
`Electron.app` (または Linux上では、`electron`、Windows上では、 `electron.exe`)を実行すると、Electronはアプリケーションを開始します。`electron` ディレクトリを最終的なユーザーに提供するために配布します。
|
||||||
|
|
||||||
## ファイルにアプリケーションをパッケージングする
|
## ファイルにアプリケーションをパッケージングする
|
||||||
|
|
||||||
すべてのソースコードをコピーすることでアプリケーションを提供する方法とは別に、アプリケーションのソースコードをユーザーに見えるのを避けるために、[asar](https://github.com/atom/asar) にアーカイブしてアプリケーションをパッケージ化することができます。
|
すべてのソースコードをコピーすることでアプリケーションを提供する方法とは別に、アプリケーションのソースコードをユーザーに見えるのを避けるために、[asar](https://github.com/atom/asar) にアーカイブしてアプリケーションをパッケージ化することができます。
|
||||||
|
|
||||||
`asar`アーカイブを使用するために、`app`フォルダーと置き換え、アーカイブファイルを`app.asar`という名前に変更する必要があり、Electronのリソースディレクトリの下に置くと、Electronはアーカイブを読み込もうとし、それを開始します。
|
`app` フォルダの代わりに `asar` アーカイブを使用するためには、アーカイブファイルを `app.asar` という名前に変更し、Electron のリソースディレクトリに以下のように配置する必要があります。すると、Electron はアーカイブを読み込もうとし、それを開始します。
|
||||||
|
|
||||||
OS X:
|
OS X:
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ electron/resources/
|
||||||
|
|
||||||
[Application packaging](application-packaging.md)で、詳細を確認できます。
|
[Application packaging](application-packaging.md)で、詳細を確認できます。
|
||||||
|
|
||||||
## ダウンローするバイナリのブランド名の変更
|
## ダウンロードするバイナリのブランド名の変更
|
||||||
|
|
||||||
Electronにバンドルした後、ユーザーに配布する前に、 Electron名を変更したいでしょう。
|
Electronにバンドルした後、ユーザーに配布する前に、 Electron名を変更したいでしょう。
|
||||||
|
|
||||||
|
@ -56,14 +56,14 @@ Electronにバンドルした後、ユーザーに配布する前に、 Electron
|
||||||
|
|
||||||
### OS X
|
### OS X
|
||||||
|
|
||||||
`Electron.app` を任意の名前に変更でき、次のファイルの `CFBundleDisplayName`と `CFBundleIdentifier`、 `CFBundleName`のフィールドの名前を変更する必要があります。
|
`Electron.app` を任意の名前に変更でき、次のファイルの `CFBundleDisplayName`と `CFBundleIdentifier`、 `CFBundleName`のフィールドの名前を変更する必要があります。
|
||||||
|
|
||||||
* `Electron.app/Contents/Info.plist`
|
* `Electron.app/Contents/Info.plist`
|
||||||
* `Electron.app/Contents/Frameworks/Electron Helper.app/Contents/Info.plist`
|
* `Electron.app/Contents/Frameworks/Electron Helper.app/Contents/Info.plist`
|
||||||
|
|
||||||
Activity Monitorで、`Electron Helper`と表示されるのを避けるために、helper appの名前を変更でき、 helper appの実行ファイルの名前を確認します。
|
ヘルパーアプリケーションの名前を変更して、アクティビティモニタに `Electron Helper` と表示されないようにすることもできますが、その際はヘルパーアプリケーションの実行可能ファイルの名前を変更したことを確認してください。
|
||||||
|
|
||||||
次のようなappの変更する名前の構造
|
名前変更後のアプリケーションの構成は以下の通りです:
|
||||||
|
|
||||||
```
|
```
|
||||||
MyApp.app/Contents
|
MyApp.app/Contents
|
||||||
|
@ -95,14 +95,14 @@ MyApp.app/Contents
|
||||||
|
|
||||||
### grunt-build-atom-shell
|
### grunt-build-atom-shell
|
||||||
|
|
||||||
マニュアルでは、Electronのコードをダウンロードし、リビルドさせます。一方で、面倒なタスクはこれで自動化できます:
|
Electron のコードを手動チェックアウトして再構築するのには複雑な手順が必要ですが、これを自動的に扱うための Grunt タスクが作られています:
|
||||||
[grunt-build-atom-shell](https://github.com/paulcbetts/grunt-build-atom-shell).
|
[grunt-build-atom-shell](https://github.com/paulcbetts/grunt-build-atom-shell).
|
||||||
|
|
||||||
This task will automatically handle editing the 自動処理を管理するのに、`.gyp`ファイルを編集し、ソースからビルドし、新しい実行名に一致したときにはNativeのNodeモジュールをリビルドするようにできます。
|
このタスクは自動的に `.gyp` ファイルの編集、ソースからのビルド、そして新しい実行可能ファイル名に一致するようにネイティブの Node モジュールを再構築します。
|
||||||
|
|
||||||
## パッケージングツール
|
## パッケージングツール
|
||||||
|
|
||||||
マニュアルでパッケージ化するのとは別に、サードパーティのパッケジングツールを選ぶこともできます。
|
手動でアプリケーションをパッケージ化する以外の方法として、サードパーティのパッケジングツールを選ぶこともできます。
|
||||||
|
|
||||||
* [electron-packager](https://github.com/maxogden/electron-packager)
|
* [electron-packager](https://github.com/maxogden/electron-packager)
|
||||||
* [electron-builder](https://github.com/loopline-systems/electron-builder)
|
* [electron-builder](https://github.com/loopline-systems/electron-builder)
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
# アプリケーションのパッケージ化
|
# アプリケーションのパッケージ化
|
||||||
|
|
||||||
Windows上の長いパス名周りの[issues](https://github.com/joyent/node/issues/6960) を軽減させるたり、`require`を若干スピードアップさせたり、 簡単な調査からソースコードを隠したりするために、ソースコードの少しの変更で、[asar][asar]にアーカイブし、パッケージ化を選択することもできます。
|
Windows上の長いパス名周りの[問題](https://github.com/joyent/node/issues/6960) を軽減したり、`require`を若干スピードアップしたり、簡単な調査からソースコードを隠したりするために、ソースコードを少々変更して、アプリケーションを [asar][asar] アーカイブとしてパッケージ化することもできます。
|
||||||
|
|
||||||
## `asar` アーカイブの生成
|
## `asar` アーカイブの生成
|
||||||
|
|
||||||
[asar][asar] アーカイブは、1つのファイルに連結されたtarライクのシンプルなフォーマットです。Electronは、すべてのファイルをアンパッキングせずに、任意のファイルを読み込めます。
|
[asar][asar] アーカイブは、1つのファイルに連結されたtarライクのシンプルなフォーマットです。Electron はファイル全体をアンパックしなくても任意のファイルを読み込めます。
|
||||||
|
|
||||||
アプリを `asar` アーカイブにパッケージ化する手順
|
アプリを `asar` アーカイブにパッケージ化する手順:
|
||||||
|
|
||||||
### 1. asar ツールのインストール
|
### 1. asar ユーティリティのインストール
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ npm install -g asar
|
$ npm install -g asar
|
||||||
|
@ -22,11 +22,11 @@ $ asar pack your-app app.asar
|
||||||
|
|
||||||
## `asar` アーカイブを使用する
|
## `asar` アーカイブを使用する
|
||||||
|
|
||||||
Electronには、2組のAPIがあります。Node APIは、Node.jsで提供されており、Web APIは、Chromiumで提供されています。両方のAPIは、 `asar` アーカイブからのファイル読み込みに対応しています。
|
Electronには、2組のAPIがあります。Node.js により提供される Node API、そして Chromium により提供される Web API です。どちらの API も `asar` アーカイブからのファイル読み込みに対応しています。
|
||||||
|
|
||||||
### Node API
|
### Node API
|
||||||
|
|
||||||
Electronでは特定のパッチで、`fs.readFile` や `require` のようなNode APIは、`asar` アーカイブを仮想ディレクトリのように扱い、ファイルをファイルシステムで通常のファイルのように扱います。
|
Electronでは特定のパッチで、`fs.readFile` や `require` のようなNode APIは、`asar` アーカイブを仮想ディレクトリのように扱い、ファイルをファイルシステム上の通常のファイルのように扱います。
|
||||||
|
|
||||||
例えば、`/path/to` 配下に、`example.asar` アーカイブがあると仮定します:
|
例えば、`/path/to` 配下に、`example.asar` アーカイブがあると仮定します:
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ $ asar list /path/to/example.asar
|
||||||
/static/jquery.min.js
|
/static/jquery.min.js
|
||||||
```
|
```
|
||||||
|
|
||||||
`asar` アーカイブでファイルを読み込む:
|
`asar` アーカイブ内のファイルを読み込む:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
|
@ -60,7 +60,7 @@ fs.readdirSync('/path/to/example.asar');
|
||||||
require('/path/to/example.asar/dir/module.js');
|
require('/path/to/example.asar/dir/module.js');
|
||||||
```
|
```
|
||||||
|
|
||||||
`BrowserWindow`で、`asar`アーカイブで、Webページを表示することができます:
|
`BrowserWindow` を使って `asar` アーカイブ内の Web ページを表示することもできます:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
const BrowserWindow = require('electron').BrowserWindow;
|
const BrowserWindow = require('electron').BrowserWindow;
|
||||||
|
@ -71,7 +71,7 @@ win.loadURL('file:///path/to/example.asar/static/index.html');
|
||||||
### Web API
|
### Web API
|
||||||
|
|
||||||
Webページで、アーカイブ内のファイルを `file:` プロトコルでリクエストできます。
|
Webページで、アーカイブ内のファイルを `file:` プロトコルでリクエストできます。
|
||||||
Node APIのように、`asar` アーカイブはディレクトリのように扱われます。
|
Node API と同様、`asar` アーカイブはディレクトリのように扱われます。
|
||||||
|
|
||||||
例えば、 `$.get` でファイルを取得できます:
|
例えば、 `$.get` でファイルを取得できます:
|
||||||
|
|
||||||
|
@ -86,14 +86,14 @@ $.get('file:///path/to/example.asar/file.txt', function(data) {
|
||||||
|
|
||||||
### `asar` アーカイブを通常のファイルのように扱う
|
### `asar` アーカイブを通常のファイルのように扱う
|
||||||
|
|
||||||
For some cases like verifying the `asar` アーカイブのチェックサムを検証するようなケースで、 `asar` アーカイブのコンテンツをファイルのように扱う必要があります。この目的のために、 `asar` サポートしないオリジナルの `fs` API が提供する ビルトインの `original-fs` モジュールを使用できます。
|
アーカイブのチェックサムを検証する等の幾つかのケースでは、`asar` アーカイブをファイルとして読み込む必要があります。この目的のために、 `asar` サポートしないオリジナルの `fs` API を提供するビルトインの `original-fs` モジュールを使用できます。
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var originalFs = require('original-fs');
|
var originalFs = require('original-fs');
|
||||||
originalFs.readFileSync('/path/to/example.asar');
|
originalFs.readFileSync('/path/to/example.asar');
|
||||||
```
|
```
|
||||||
|
|
||||||
`fs` モジュールで、`asar` サポートを無効化するために、`process.noAsar` を `true` に設定します:
|
`process.noAssar` に `true` をセットしても `fs` モジュールの `asar` サポートを無効にすることができます:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
process.noAsar = true;
|
process.noAsar = true;
|
||||||
|
@ -102,21 +102,21 @@ fs.readFileSync('/path/to/example.asar');
|
||||||
|
|
||||||
## Node API の制限
|
## Node API の制限
|
||||||
|
|
||||||
Node APIで、`asar` アーカイブが可能な限りディレクトリのように動作するよう懸命に試してますが、Node APIの低レベル性質の影響で、まだ制限があります。
|
Node APIで、`asar` アーカイブが可能な限りディレクトリのように動作するよう懸命に試してますが、低レベル環境での Node API に起因した制限が幾つかあります。
|
||||||
|
|
||||||
### アーカイブは読み取り専用です
|
### アーカイブは読み取り専用です
|
||||||
|
|
||||||
ファイルを変更できる全てのNode APIは、 `asar` アーカイブに対して動作しないので、アーカイブは変更されません。
|
アーカイブは修正できないため、ファイルを変更できる変更できる全ての Node API は `asar` アーカイブに対して動作しません。
|
||||||
|
|
||||||
### 作業ディレクトリは、アーカイブ内のディレクトリに設定できません
|
### 作業ディレクトリは、アーカイブ内のディレクトリに設定できません
|
||||||
|
|
||||||
`asar` アーカイブはディレクトリのように扱われるにも関わらず、ファイルシステム上では実際のディレクトリではなく、`asar` アーカイブ内に決して作業ディレクトリは設定されません。いくつかのAPIの`cwd`オプションを設定していて、それがエラー原因になります。
|
`asar` アーカイブはディレクトリのように扱われるにも関わらず、ファイルシステム上には実際のディレクトリが存在しないため、`asar` アーカイブ内のディレクトリを作業ディレクトリとして設定することはできません。幾つかの API の `cwd` オプションにアーカイブ内のディレクトリを渡すのも同様にエラーの原因になります。
|
||||||
|
|
||||||
### いくつかのAPIで追加のアンパッキングがされます
|
### いくつかのAPIで追加のアンパッキングがされます
|
||||||
|
|
||||||
たいていの `fs` APIは、アンパッキングせずに、 `asar` アーカイブからファイルを読み込んだり、ファイル情報を取得できます。しかし、実際のファイルパスを通してシステムコールに依存するAPIもあり、Electronは必要なファイルを一時ファイルに解凍し、一時ファイルのパスを通して、APIが動作します。これは、APIに多少のオーバーヘッドがあります。
|
たいていの `fs` APIは、アンパッキングせずに、 `asar` アーカイブからファイルを読み込んだり、ファイル情報を取得できます。しかし、システムコールに実際のファイルパスを渡すようになっている幾つかの API では、Electron は必要なファイルを一時ファイルとして抽出し、API に一時ファイルのパスを渡して、API が動作するようにします。このため、当該 API には多少のオーバーヘッドがあります。
|
||||||
|
|
||||||
追加のアンパッキングに必要なAPIです。:
|
追加のアンパッキングに必要なAPIです:
|
||||||
|
|
||||||
* `child_process.execFile`
|
* `child_process.execFile`
|
||||||
* `child_process.execFileSync`
|
* `child_process.execFileSync`
|
||||||
|
@ -126,24 +126,24 @@ Node APIで、`asar` アーカイブが可能な限りディレクトリのよ
|
||||||
|
|
||||||
### `fs.stat` の偽の統計情報
|
### `fs.stat` の偽の統計情報
|
||||||
|
|
||||||
ファイルシステム上にファイルが存在しないので、`fs.stat` および `asar` アーカイブ内のファイルへの関連情報によって返される`Stats` オブジェクトは、推測して生成されます。ファイルサイズの取得とファイルタイプのチェックを除いて、 `Stats` オブジェクトを信頼すべきではありません。
|
`asar` アーカイブ内のファイルはファイルシステム上に存在しないので、`fs.stat` および `asar` アーカイブ内のファイルへの関連情報によって返される`Stats` オブジェクトは、推測して生成されます。ファイルサイズの取得とファイルタイプのチェックを除いて、 `Stats` オブジェクトを信頼すべきではありません。
|
||||||
|
|
||||||
### `asar` アーカイブ内でバイナリを実行します
|
### `asar` アーカイブ内のバイナリの実行
|
||||||
|
|
||||||
`child_process.exec` と `child_process.spawn` 、 `child_process.execFile` のようなバイナリを実行できるNode APIがあります。しかし、`execFile` だけが、`asar` アーカイブ内でのバイナリ実行をサポートしています。
|
`child_process.exec` と `child_process.spawn` 、 `child_process.execFile` のようなバイナリを実行できるNode APIがあります。しかし、`execFile` だけが、`asar` アーカイブ内でのバイナリ実行をサポートしています。
|
||||||
|
|
||||||
`exec` と `spawn` は、インプットを `file` の代わりに `command` を受け取り、`command` はシェル配下で実行されます。コマンドがasar アーカイブ内のファイルを使うかどうかを決定するための信頼できる方法はありません。影響なしで、コマンドでパスを置き換えることができるかどうかを確認することはできません。
|
なぜならば、`exec` と `spawn` は入力として `file` の代わりに `command` を受け取り、`command` はシェル配下で実行されるからです。コマンドが asar アーカイブ内のファイルを使うかどうかを決定するための信頼できる方法はありませんし、そうするとしてもコマンドで使うファイルパスを副作用なしに置き換えることができるかどうかを確認することはできません。
|
||||||
|
|
||||||
## アンパッキングする `asar` アーカイブ内のファイルを追加する
|
## `asar` アーカイブ内のファイルをアンパックして追加
|
||||||
|
|
||||||
上記のように、いくつかのNode APIは、呼び出さすとき、ファイルをファイルパスへアンパックします。パフォーマンス問題は別として、ウィルススキャナーのアラートにつながる可能性があります。
|
上記のように、いくつかのNode APIが呼ばれると、ファイルシステム上にファイルをアンパックしますが,パフォーマンス問題は別として、ウィルススキャナーのアラートにつながる可能性があります。
|
||||||
|
|
||||||
これに対する対応として、`--unpack` オプションを使用して、アーカイブを作成する際に、いくつかのファイルをアンパックできます。例えば、ネイティブモジュールの共有ライブラリを除きます。
|
これに対応するために、`--unpack` オプションを使用して、アーカイブを作成する際に、いくつかのファイルをアンパックできます。例えば、ネイティブモジュールの共有ライブラリを除く場合:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ asar pack app app.asar --unpack *.node
|
$ asar pack app app.asar --unpack *.node
|
||||||
```
|
```
|
||||||
|
|
||||||
このコマンドを実行した後、`app.asar` とは別に、アンパックファイルを含んだ`app.asar.unpacked` フォルダーが生成され、ユーザーに提供するときには、`app.asar` と一緒にコピーしなければなりません。
|
このコマンドを実行した後、`app.asar` とは別に、アンパックされたファイルを含んだ`app.asar.unpacked` フォルダーが生成されます。ユーザーに提供するときには、`app.asar` と一緒にコピーしなければなりません。
|
||||||
|
|
||||||
[asar]: https://github.com/atom/asar
|
[asar]: https://github.com/atom/asar
|
||||||
|
|
Loading…
Reference in a new issue