Javascript

PKG - Transforme seu aplicativo Node em executável

T
Por Tulio Faria 9 de maio de 2017
PKG - Transforme seu aplicativo Node em executável

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:

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!