Merge pull request #2711 from jonatasfreitasv/master
application-distribution.md translated to pt-BR
This commit is contained in:
commit
e597229750
4 changed files with 278 additions and 2 deletions
|
@ -1,7 +1,7 @@
|
|||
## Guias
|
||||
|
||||
* [Distribuir Aplicação](../../docs/tutorial/application-distribution.md)
|
||||
* [Empacotamento da aplicação](../../docs/tutorial/application-packaging.md)
|
||||
* [Distribuir Aplicação](tutorial/application-distribution.md)
|
||||
* [Empacotamento da aplicação](tutorial/application-packaging.md)
|
||||
* [Usando módulos nativos](../../docs/tutorial/using-native-node-modules.md)
|
||||
* [Depuração do processo principal](../../docs/tutorial/debugging-main-process.md)
|
||||
* [Usando Selenium e WebDriver](../../docs/tutorial/using-selenium-and-webdriver.md)
|
118
docs-translations/pt-BR/tutorial/application-distribution.md
Normal file
118
docs-translations/pt-BR/tutorial/application-distribution.md
Normal file
|
@ -0,0 +1,118 @@
|
|||
# Distribuição de aplicações
|
||||
|
||||
Para distribuir sua aplicação com o Electron, você deve nomear o diretório que contém sua aplicação como
|
||||
`app` e dentro deste diretório colocar os recursos que você está utilizando (no OSX
|
||||
`Electron.app/Contents/Resources/`,
|
||||
no Linux e no Windows é em `resources/`):
|
||||
|
||||
No OSX:
|
||||
|
||||
```text
|
||||
electron/Electron.app/Contents/Resources/app/
|
||||
├── package.json
|
||||
├── main.js
|
||||
└── index.html
|
||||
```
|
||||
|
||||
No Windows e Linux:
|
||||
|
||||
```text
|
||||
electron/resources/app
|
||||
├── package.json
|
||||
├── main.js
|
||||
└── index.html
|
||||
```
|
||||
|
||||
Logo após execute `Electron.app` (ou `electron` no Linux e `electron.exe` no Windows),
|
||||
e o Electron iniciaria a aplicação. O diretório `electron` será utilizado para criar a distribuição para
|
||||
usuários finais.
|
||||
|
||||
## Empacotando sua aplicação em um arquivo.
|
||||
|
||||
Além de copiar todos os seus arquivos fontes para a distribuição, você também pode
|
||||
empacotar seu aplicativo em um arquivo [asar](https://github.com/atom/asar) para evitar
|
||||
de expor seu código fonte aos usuários finais.
|
||||
|
||||
Para usar um arquivo `asar` ao invés da pasta `app` você precisa mudar o nome do
|
||||
arquivo para `app.asar` e colocá-lo sob o diretório de recursos do Electron como
|
||||
mostrado abaixo, então o Electron vai ler o arquivo e iniciar a aplicação a partir dele.
|
||||
|
||||
No OSX:
|
||||
|
||||
```text
|
||||
electron/Electron.app/Contents/Resources/
|
||||
└── app.asar
|
||||
```
|
||||
|
||||
No Windows e Linux:
|
||||
|
||||
```text
|
||||
electron/resources/
|
||||
└── app.asar
|
||||
```
|
||||
|
||||
Mais detalhes podem ser encontrados em [Empacotamento da aplicação](../../../docs/tutorial/application-packaging.md).
|
||||
|
||||
## Renomeando a marca Electron na sua distribuição
|
||||
|
||||
Depois de empacotar seu aplicativo Electron, você vai querer renomear a marca Electron
|
||||
antes de distribuí-lo aos usuários.
|
||||
|
||||
### Janelas
|
||||
|
||||
Você pode renomear `electron.exe` para o nome que desejar e editar o seu ícone e outras
|
||||
informações com ferramentas como [rcedit](https://github.com/atom/rcedit) ou
|
||||
[ResEdit](http://www.resedit.net).
|
||||
|
||||
### OS X
|
||||
|
||||
Você pode renomear `Electron.app` para o nome que desejar e também pode mudar o nome
|
||||
do `CFBundleDisplayName`, `CFBundleIdentifier` e os campos em `CFBundleName`
|
||||
nos seguinte arquivos:
|
||||
|
||||
* `Electron.app/Contents/Info.plist`
|
||||
* `Electron.app/Contents/frameworks/Electron Helper.app/Contents/Info.plist`
|
||||
|
||||
Você também pode renomear o arquivo de ajuda para evitar a exibição de `Electron Helper` no
|
||||
Monitor de Atividades, mas certifique-se de também renomear o arquivo de ajuda no executável do
|
||||
aplicativo.
|
||||
|
||||
A estrutura de uma aplicação renomada seria assim:
|
||||
|
||||
```
|
||||
MyApp.app/Contents
|
||||
├── Info.plist
|
||||
├── MacOS/
|
||||
│ └── MyApp
|
||||
└── Frameworks/
|
||||
├── MyApp Helper EH.app
|
||||
| ├── Info.plist
|
||||
| └── MacOS/
|
||||
| └── MyApp Helper EH
|
||||
├── MyApp Helper NP.app
|
||||
| ├── Info.plist
|
||||
| └── MacOS/
|
||||
| └── MyApp Helper NP
|
||||
└── MyApp Helper.app
|
||||
├── Info.plist
|
||||
└── MacOS/
|
||||
└── MyApp Helper
|
||||
```
|
||||
|
||||
### Linux
|
||||
|
||||
Você pode renomear o executável `electron` para o nome que desejar.
|
||||
|
||||
## Renomeando a marca Electron do código fonte.
|
||||
|
||||
Também é possível fazer renomear a marca Electron do código fonte, alterando o nome do produto e
|
||||
reconstruí-lo a partir da fonte, para fazer isso você precisa modificar o arquivo `atom.gyp`.
|
||||
|
||||
### grunt-build-atom-shell
|
||||
|
||||
A modificação do código fonte do Electron para ganhar a sua marca pode ser muito complexa, por isso,
|
||||
uma tarefa para o Grunt foi criado e irá cuidar desta tarefa automaticamente para você:
|
||||
[grunt-build-atom-shell](https://github.com/paulcbetts/grunt-build-atom-shell).
|
||||
|
||||
Esta tarefa irá automaticamente editar o arquivo `.gyp`, compilar o código
|
||||
e reconstruir os módulos nativos da aplicação para utilizar o novo nome.
|
158
docs-translations/pt-BR/tutorial/application-packaging.md
Normal file
158
docs-translations/pt-BR/tutorial/application-packaging.md
Normal file
|
@ -0,0 +1,158 @@
|
|||
# Empacotamento da aplicação
|
||||
|
||||
Para proteger os recursos e o código fonte da sua aplicação você pode optar por
|
||||
empacotar a sua aplicação em um arquivo [asar](https://github.com/atom/asar), isto é possível com poucas
|
||||
alterações em seu código.
|
||||
|
||||
## Gerando um arquivo `asar`
|
||||
|
||||
Um arquivo [asar][asar] é um formato parecido com tar ou zip bem simples que concatena arquivos
|
||||
em um único arquivo. O Electron pode ler arquivos arbitrários a partir dele sem descompacatar
|
||||
o arquivo inteiro.
|
||||
|
||||
Passos para empacotar a sua aplicação em um arquivo `asar`:
|
||||
|
||||
### 1. Instale o utilitário asar
|
||||
|
||||
```bash
|
||||
$ npm install -g asar
|
||||
```
|
||||
|
||||
### 2. Empacote a sua aplicação
|
||||
|
||||
```bash
|
||||
$ asar pack your-app app.asar
|
||||
```
|
||||
|
||||
## Usando arquivos `asar`
|
||||
|
||||
No Electron existem dois conjuntos de APIs: Node APIs fornecidas pelo Node.js e Web
|
||||
APIs fornecidas pelo Chromium. Ambas as APIs suportam a leitura de arquivos `asar`.
|
||||
|
||||
### Node API
|
||||
|
||||
As API's do Node como `fs.readFile` e `require` tratam os pacotes `asar`
|
||||
como diretórios virtuais e os arquivos dentro dele como arquivos normais.
|
||||
|
||||
Por exemplo, temos um arquivo `example.asar` sob `/path/to`:
|
||||
|
||||
```bash
|
||||
$ asar list /path/to/example.asar
|
||||
/app.js
|
||||
/file.txt
|
||||
/dir/module.js
|
||||
/static/index.html
|
||||
/static/main.css
|
||||
/static/jquery.min.js
|
||||
```
|
||||
|
||||
Lendo um arquivo em pacote `asar`:
|
||||
|
||||
```javascript
|
||||
var fs = require('fs');
|
||||
fs.readFileSync('/path/to/example.asar/file.txt');
|
||||
```
|
||||
|
||||
Listando todos os arquivos a partir da raiz:
|
||||
|
||||
```javascript
|
||||
var fs = require('fs');
|
||||
fs.readdirSync('/path/to/example.asar');
|
||||
```
|
||||
|
||||
Utilizando um módulo dentro do pacote `asar`:
|
||||
|
||||
```javascript
|
||||
require('/path/to/example.asar/dir/module.js');
|
||||
```
|
||||
|
||||
Você também pode renderizar uma página web apartir de um arquivo `asar` utilizando o módulo `BrowserWindow`:
|
||||
|
||||
```javascript
|
||||
var BrowserWindow = require('browser-window');
|
||||
var win = new BrowserWindow({width: 800, height: 600});
|
||||
win.loadUrl('file:///path/to/example.asar/static/index.html');
|
||||
```
|
||||
|
||||
### API Web
|
||||
|
||||
Em uma página web, arquivos em um pacote `asar` pode ser solicitado com o protocolo `file:`.
|
||||
Como a API Node, arquivos `asar` são tratadas como diretórios.
|
||||
|
||||
Por exemplo, para obter um arquivo com `$ .get`:
|
||||
|
||||
```html
|
||||
<script>
|
||||
var $ = require('./jquery.min.js');
|
||||
$.get('file:///path/to/example.asar/file.txt', function(data) {
|
||||
console.log(data);
|
||||
});
|
||||
</script>
|
||||
```
|
||||
|
||||
### Tratando um pacote `asar` como um arquivo normal
|
||||
|
||||
Para alguns casos, precisamos verificar o checksum de um pacote `asar`, para fazer isto, precisamos ler
|
||||
o arquivo `asar` como um arquivo normal. Para isto, você pode usar o built-in
|
||||
`original-fs` que fornece a API `fs`, sem apoio a arquivos asar`:
|
||||
|
||||
```javascript
|
||||
var originalFs = require('original-fs');
|
||||
originalFs.readFileSync('/path/to/example.asar');
|
||||
```
|
||||
|
||||
## Limitaçõs na API Node
|
||||
|
||||
Mesmo fazendo grandes esforços para pacotes `asar` ser tratado no Node como diretórios,
|
||||
ainda existem limitações devido a natureza de baixo nível do Node
|
||||
|
||||
### Arquivos `asar` são somente leitura
|
||||
|
||||
Os arquivos `asar` não podem ser modificados.
|
||||
|
||||
### Diretório de trabalho não pode ser comportar como diretório de arquivos
|
||||
|
||||
Embora pacotes `asar` são tratadas como diretórios, não há
|
||||
diretórios reais no sistema de arquivos, assim você nunca pode definir o diretório de trabalho para
|
||||
diretórios em pacotes `asar`, passando-os como a opção `cwd` de algumas APIs
|
||||
também irá causar erros.
|
||||
|
||||
### Descompactação extra em algumas APIs
|
||||
|
||||
A maioria das APIs `fs` pode ler um arquivo ou obter informações de um arquivo a partir de pacotes `asar`
|
||||
sem descompacta-lo, mas para algumas APIs da rota real o Electron irá extrair o arquivo necessário para um
|
||||
arquivo temporário e passar o caminho do arquivo temporário para as APIs,
|
||||
isso adiciona um pouco de sobrecarga para essas APIs.
|
||||
|
||||
APIs que requer descompactação extras são:
|
||||
|
||||
* `child_process.execFile`
|
||||
* `fs.open`
|
||||
* `fs.openSync`
|
||||
* `process.dlopen` - Usado por `require` em módulos nativos
|
||||
|
||||
### Falsas informações de status do módulo `fs.stat`
|
||||
|
||||
O objeto `Stats` retornado por` fs.stat` e outras funções relacionadas não são informações confiáveis,
|
||||
você não deve confiar no objeto `Stats` exceto para obter o
|
||||
tamanho do arquivo e verificação de tipo de arquivo.
|
||||
|
||||
## Adicionando arquivos em um pacote `asar`
|
||||
|
||||
Como dito acima, algumas APIs deo Node irá descompactar o arquivo para quando o filesystem
|
||||
requsistar, além dos problemas de desempenho, ele também pode levar a falsos alertas
|
||||
de vírus.
|
||||
|
||||
Para contornar isso, você pode descompactar alguns arquivos usando a
|
||||
opção `--unpack`, um exemplo de exclusão de bibliotecas compartilhadas de módulos nativos
|
||||
é:
|
||||
|
||||
```bash
|
||||
$ asar pack app app.asar --unpack *.node
|
||||
```
|
||||
|
||||
Depois de executar o comando, além do `app.asar`, há também
|
||||
`app.asar.unpacked` pasta gerada que contém os arquivos descompactados, você
|
||||
deve copiá-lo juntamente com `app.asar` quando enviá-lo para os usuários.
|
||||
|
||||
Mais informações no repositório [asar](https://github.com/atom/asar)
|
Loading…
Add table
Add a link
Reference in a new issue