PKG - Transforme seu aplicativo Node em executável

PKG - Transforme seu aplicativo Node em executável

Tulio Faria
Tulio Faria9 de maio de 2017
Neste post, faremos um hands-on do módulo PKG, que serve basicamente para transformarmos nosso aplicativo node em executável, ou seja, podemos distribuir esta aplicação sem precisar instalar o ambiente do node ou até mesmo mandar o mesmo dentro deste executável.
Qual a vantagem disso?
Com isso, podemos, por exemplo, efetuar demonstrações ou distribuir o software em si. Uma das ideias que vou mostrar aqui é distribuir uma aplicação em express, podendo enviar este arquivo a um cliente apenas dentro de um executável.
Primeiramente vamos instalar este módulo:

npm install -g pkg

Em seguida vamos adicionar um express:

yarn add express

Depois iremos no Visual Studio Code e criamos um index.js

const express = require('express') const app = express() app.get('/', (req, res)=>{ res.send('Bem vindo ao meu-app') )} app.listen(3000, ()=>{ console.log('Running meu-app') }

Ele irá 'ouvir' a porta 3000 e, se tudo ocorrer bem, mostrará a mensagem "running meu-app"
Originalmente o package virá assim:

{ "dependencies": { "express": "^4.15.2" } }

Mas iremos fazer algumas modificações. A primeira coisa que devemos fazer é adicionar o nome do nosso aplicativo ("name": "meuapp"), precisamos também dizer quem é nosso ponto de entrada ("bin": "index.js")
e a última modificação é opcional, pois nele podemos dizer se queremos mandar algum diretório além do module e qual target, ou seja, quais versões do Node quero 'empacotar' neste aplicativo.

{ name": "meuapp", "dependencies": { "express": "^4.15.2" }, "bin": "index.js", "pkg":{ "assets":[ "view/\*\*/\*" ], "target": [ "node7" ] } }

Para executarmos isso, vamos no Node e colocamos:

pkg . (pkg ponto)

Com isso, solicitamos o node para empacotar a aplicação utilizando o package.json. Isso é legal porque podemos entregar este aplicativo para o cliente, demo, trial, etc, criando um instalador.
Lembrando que nós continuamos tendo acesso total ao código. Usando o express, podemos abrir em outra máquina e ler a faixa de IP que a máquina principal está rodando e na interface mostrar para o cliente "para acessar este aplicativo use o IP xxx.xxx.xxx.xxx em uma máquina de sua rede.”
Assim, várias pessoas conseguem acessar o mesmo aplicativo. É possível utilizar o Package sem a necessidade do Package.json, por exemplo passando direto o ponto de entrada, mas eu prefiro usar o package.json para ficar documentado, deste modo não precisamos lembrar todos os parâmetros sempre.
Confira o video:
pZNeUcCPwEs
Assistir vídeo
Curta o DevPleno no Facebook, inscreva-se no canal e não se esqueça de cadastrar seu e-mail para não perder as novidades. Ah, fique à vontade para deixar suas dúvidas e sugestões nos comentários. Abraço!
Tulio Faria
Autor
Tulio Faria9 de maio de 2017

Últimas do Blog