Merge pull request #5979 from cyberkatze/patch-7

fixed errors in text
This commit is contained in:
Cheng Zhao 2016-06-10 12:22:04 +00:00 committed by GitHub
commit e824603f37

View file

@ -1,7 +1,7 @@
# Упаковка приложения
Чтобы смягчить [проблемы](https://github.com/joyent/node/issues/6960) с длинными
именами под Windows, немного ускорить `require` и скрыть ваши исходные коды, вы
именами под Windows, немного ускорить `require` и скрыть ваши исходные коды, Вы
можете упаковать его в архив [asar][asar], немного поменяв исходный код.
## Генерация архива `asar`
@ -25,16 +25,16 @@ $ asar pack your-app app.asar
## Использование архивов `asar`
В Electron есть два вида API: API Node, которые устанавливаются с помощью Node.Js и
В Electron есть два вида API: API Node, которые устанавливаются с помощью Node.JS и
веб API, которые предоставляюся Chromium. Оба предоставляют возможность считывать из
архивов `asar`.
### Node API
С специальными патчами в Electron, части Node API вроде `fs.readFile` и `require`
Со специальными патчами в Electron, части Node API вроде `fs.readFile` и `require`
считают архивы `asar` виртуальными папками и файлы в них доступны как в обычных.
Например, у нас есть арихив `example.asar` в `/path/to`:
Например, у нас есть архив `example.asar` в `/path/to`:
```bash
$ asar list /path/to/example.asar
@ -60,13 +60,13 @@ const fs = require('fs');
fs.readdirSync('/path/to/example.asar');
```
Ичпользуем модуль из архива:
Используем модуль из архива:
```javascript
require('/path/to/example.asar/dir/module.js');
```
Вы также можете показывать веб страницы из архива `asar` через `BrowserWindow`:
Вы также можете показывать веб-страницы из архива `asar` через `BrowserWindow`:
```javascript
const BrowserWindow = require('electron').BrowserWindow;
@ -76,7 +76,7 @@ win.loadURL('file:///path/to/example.asar/static/index.html');
### Веб API
На веб страницах файлы запрашиваются с помощью протокола `file:`. Как и в Node API
На веб-страницах файлы запрашиваются с помощью протокола `file:`. Как и в Node API
архивы `asar` считаются за директории.
Пример получения файла с помощью `$.get`:
@ -93,7 +93,7 @@ $.get('file:///path/to/example.asar/file.txt', function(data) {
### Использование архива `asar` в качестве обычного файла
Для случаев, когда вам, например, нужно проверить хэш-сумму архива `asar`,
Для случаев, когда Вам, например, нужно проверить хэш-сумму архива `asar`,
нужно использовать архив как файл. Для этой цели существует встроенный модуль
`original-fs`, который предоставляет доступ к `fs` без поддежки `asar`:
@ -101,6 +101,7 @@ $.get('file:///path/to/example.asar/file.txt', function(data) {
var originalFs = require('original-fs');
originalFs.readFileSync('/path/to/example.asar');
```
Вы также можете выставить `process.noAsar` в `true`, чтобы выключить поддержку `asar`
в модуле `fs`:
@ -112,7 +113,7 @@ fs.readFileSync('/path/to/example.asar');
## Ограничения Node API
Хотя мы и старались как могли, чтобы сделать `asar` максимально похожим на папки,
всё ещё существуют некоторые ограничения из-за низкоуровневой натуры Node API.
всё ещё существуют некоторые ограничения из-за низкоуровневой архитектуры Node API.
### Архивы только для чтения
@ -121,8 +122,8 @@ fs.readFileSync('/path/to/example.asar');
### Нельзя установить рабочую директорию в архиве
Хотя архивы `asar` и считаются папками, они ими на самом деле не являются,
так что вы не можете установить в них рабочую директорию. Передача
Хотя архивы `asar` и считаются папками, они ими на самом деле не являются ими,
так что Вы не можете установить в них рабочую директорию. Передача
архивов `asar` в качестве аргумента `cwd` некоторым API также может вызывать ошибки.
@ -154,18 +155,18 @@ API которым нужна распаковка:
`child_process.spawn` и `child_process.execFile`, но только `execFile` может
исполнять файлы из архивов `asar`.
Так вышло потому, что `exec` и `spawn` принимают `команду` а не `файл` как параметр,
Так вышло потому, что `exec` и `spawn` принимают `команду`, а не `файл` как параметр,
а `команды` исполняются в оболочке. Нет никакой реальной возможности проверить,
реален ли файл или находится в архиве `asar`, и даже если мы смогли бы проверить,
то неясно, как земенить путь к файлу без побочных эффектов.
## Добавление распакованых файлов в архив `asar`
Как говорилось выше, некоторые API Node будут распаковывать файлв,
Как говорилось выше, некоторые API Node будут распаковывать файлы,
чтобы их использовать. Кроме увеличенного потребления ресурсов это также
может вызвать предупрждения от антивирусов.
может вызвать предупреждения от антивирусов.
Чтобы обойти это, вы можете распаковать некоторые файлы, создавая архивы,
Чтобы обойти это, Вы можете распаковать некоторые файлы, создавая архивы,
с помощью опции `--unpack`. Пример показывает распаковку нативных модулей:
```bash