Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#1 gerar executável para linux #11

Merged

Conversation

acmesquita
Copy link

@acmesquita acmesquita commented Jul 26, 2019

Fixed #1

Catharina Mesquita added 3 commits July 26, 2019 12:00
.gitignore Outdated
*.tgz
package-lock.json
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Por que adicionar o package-lock.json no .gitignore?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Por ser um arquivo gerado, não vejo sentido ir no commit.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Estamos usando Yarn nesse pacote e por isso usamos o yarn.lock e por isso não é legal você incluir o package-lock.json de qualquer forma, porém os arquivos .lock por mais que são gerados, eles devem ir ao Git, isso porque armazenam cache para acelerar a instalação dos pacotes do zero :)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Entendi, obrigada pela explicação... =D Irei remover e adicionar mais opções de downloads.

main.js Outdated

app.dock.hide();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Essa linha não pode ser removida, existe uma maneira de verificar se o dock não existe, dá uma olhada no #8

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vou ajustar isso, obrigada!

Copy link
Member

@diego3g diego3g left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vou testar no meu Ubuntu certinho e daí aprovo a PR, acho legal ajustar apenas os pontos que mencionei

@WilianZilv
Copy link
Contributor

Vc pode fazer if(app.dock){app.dock.hide()}, como eu fiz na minha PR do Windows

@diego3g
Copy link
Member

diego3g commented Jul 26, 2019

Por que colocar as options do spawn em um array? Algum motivo específico?

@acmesquita
Copy link
Author

acmesquita commented Jul 26, 2019

Por que colocar as options do spawn em um array? Algum motivo específico?

Segundo a documentação, https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options as options devem ser passadas por array.

@diego3g
Copy link
Member

diego3g commented Jul 26, 2019

@acmesquita Na verdade lá diz que options é Object, aquele `[, options] nos parâmetros não quer dizer um array, é apenas uma forma de demonstrar que é opcional.

@acmesquita
Copy link
Author

@acmesquita Na verdade lá diz que options é Object, aquele `[, options] nos parâmetros não quer dizer um array, é apenas uma forma de demonstrar que é opcional.

Realmente, me enganei quando coloquei o array, funcionou porque retornou um undefined para o spawn e "funcionou" no meu computador.
Descobri que por conta do PATH do meu terminal o spawn não identificava o comando 'code' e não executava o comando quando clicava. Contudo, quando deixo a opção padrão { env: process.env }, ele identifica o comando e funciona normalmente.

Dúvida, se remover o env funciona nos outros terminais e nos outros sistemas operacionais?

package.json Outdated
"target": [
"AppImage"
"deb"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Não é melhor usar "snap", que tem compatibilidade maior?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Acredito que podemos gerar até mais de um formato, o que acham?

@diego3g
Copy link
Member

diego3g commented Jul 29, 2019

@acmesquita O env é essencial para funcionar em produção. Sem ele até funciona no Mac em desenvolvimento mas em produção simplesmente não rola, ele não reconhece o caminho para meu executável do code. Acho que seria legal só ajustarmos o package-lock.json (pode removê-lo por completo, nem precisa incluir no ignore). Podemos também aceitar mais opções de executáveis pro Linux além do .deb?

@diego3g
Copy link
Member

diego3g commented Jul 29, 2019

Executei um merge para sincronizar com a versão na master que havia sido atualizada por outra PR, com isso acredito que possamos aceitar. Obrigado pela contribuição @acmesquita :)

@diego3g diego3g merged commit cb5d0e9 into rocketseat-content:master Jul 29, 2019
@diego3g
Copy link
Member

diego3g commented Jul 29, 2019

@acmesquita Rodei o yarn dist aqui e não está gerando os artefatos .dev, apenas os de Mac, sabe se preciso fazer algo a mais?

@acmesquita
Copy link
Author

@diego3g, o electron-builder reconhece a plataforma que está sendo gerado os pacotes como na imagem abaixo

image

Para rodar para a plataforma linux é preciso rodar o comando com a flag --linux. Não rodei no mac, mas acredito que rodando o comando npm run dist:linux possa gerar os arquivos .deb, .snap e .rpm.

@diego3g
Copy link
Member

diego3g commented Jul 29, 2019

@acmesquita Consegui rodar também com o comando yarn dist -mwl que gerou executável para Mac, Windows e Linux.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Gerar executável para Linux
4 participants