Skip to main content

Instalar bibliotecas Node.js externas

O Roberty vem com diversas bibliotecas JavaScript disponíveis nativamente na ação Código JavaScript (axios, lodash, moment, fs-extra e muitas outras). Mas quando você precisar de uma biblioteca que não está incluída, é possível instalá-la manualmente e usá-la normalmente no seu código.


Como funciona

Cada robô compilado tem uma pasta própria dentro do AppData do Roberty:

C:\Users\{Usuário}\AppData\Roaming\roberty-v4\robots\{id-do-robo}\

Essa pasta contém o arquivo index.js compilado e uma pasta node_modules onde as dependências ficam armazenadas. Qualquer pacote instalado nessa pasta fica disponível para uso no código JavaScript do robô.

O Roberty usa seu próprio Node.js (versão 22), localizado em:

C:\Users\{Usuário}\AppData\Roaming\roberty-v4\vendor\node\22.16.0\

Passo 1 — Compile o robô

Antes de instalar pacotes, o robô precisa ter sido compilado ao menos uma vez para que sua pasta seja criada.

  1. Abra o robô no Designer.
  2. Clique em Compilar para compilar o fluxo.

Passo 2 — Encontre a pasta do robô

  1. Abra o Explorador de Arquivos e navegue para:
    C:\Users\{Usuário}\AppData\Roaming\roberty-v4\robots\
  2. As pastas são nomeadas com o ID do robô. Identifique a pasta do robô desejado pela data de modificação (a mais recente corresponde ao último robô compilado).
Atalho rápido

Cole o caminho %APPDATA%\roberty-v4\robots\ diretamente na barra de endereços do Explorador de Arquivos e pressione Enter.


Passo 3 — Abra o terminal na pasta do robô

  1. Com a pasta do robô aberta no Explorador de Arquivos, clique na barra de endereços.
  2. Digite cmd e pressione Enter para abrir o Prompt de Comando naquele diretório.

Passo 4 — Instale a biblioteca

Use o npm incluído com o Roberty para instalar o pacote:

"%APPDATA%\roberty-v4\vendor\node\22.16.0\npm.cmd" install nome-do-pacote

Exemplo — instalar a biblioteca cheerio para parsing de HTML:

"%APPDATA%\roberty-v4\vendor\node\22.16.0\npm.cmd" install cheerio

Aguarde o npm baixar e instalar o pacote. Ao final, a pasta node_modules da pasta do robô terá o pacote instalado.


Passo 5 — Use a biblioteca no código

Na ação Código JavaScript, importe o pacote com importação dinâmica (import()). O código JavaScript do robô roda em contexto de módulo ES, então require() não está disponível.

const { load } = await import('cheerio')

const html = actions["buscarPagina"]["value"]
const $ = load(html)
const titulo = $('h1').text()

return titulo
Por que import() e não require()?

O código compilado pelo Roberty usa ES modules. Dentro de um módulo ES, a sintaxe require() não funciona — use sempre a importação dinâmica await import('pacote').

Padrões comuns de importação dinâmica

// Export padrão
const { default: nomeDoPacote } = await import('nome-do-pacote')

// Exports nomeados
const { funcaoA, funcaoB } = await import('nome-do-pacote')

// Tudo em um objeto
const modulo = await import('nome-do-pacote')
modulo.funcao()

Recompilações não removem os pacotes

Quando o robô é recompilado, o Roberty roda npm install para garantir suas dependências internas, mas não remove pacotes extras que você instalou manualmente. Seus pacotes permanecem em node_modules entre recompilações.

Exceção: se a pasta do robô for excluída

Se você excluir o robô e criá-lo novamente, ou se a pasta for removida manualmente, os pacotes precisarão ser reinstalados.


Solução de problemas

O import() retorna erro "Cannot find module". Verifique se o pacote foi instalado na pasta correta (pasta do robô, não em outra pasta). Confirme que a pasta node_modules dentro da pasta do robô contém o pacote.

O npm.cmd retorna erro de permissão. Execute o Prompt de Comando como Administrador e tente novamente.

Não sei qual pasta corresponde ao meu robô. Recompile o robô e verifique a pasta modificada mais recentemente dentro de %APPDATA%\roberty-v4\robots\.


Próximos passos