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.
- Abra o robô no Designer.
- Clique em Compilar para compilar o fluxo.
Passo 2 — Encontre a pasta do robô
- Abra o Explorador de Arquivos e navegue para:
C:\Users\{Usuário}\AppData\Roaming\roberty-v4\robots\
- 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).
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ô
- Com a pasta do robô aberta no Explorador de Arquivos, clique na barra de endereços.
- Digite
cmde 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
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.
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
- Código JavaScript — referência completa da ação
- Instalar bibliotecas Python externas — o equivalente para a ação de código Python