Estou dando meus primeiros passos com o desenvolvimento do n8n para criar alguns novos nodes e adicionar mais recursos principalmente do node do Mautic e logo de cara me deparei com alguns ajustes importantes.
A licença do n8n permite que você faça uma cópia do código, colabore com correções ou novos nodes e envie de volta para a equipe de desenvolvimento analisar e possivelmente incluir a sua colaboração no projeto.
Neste artigo vou explicar como resolver os principais problemas na configuração do ambiente de desenvolvimento do n8n.
Instalando o Node
Em um ambiente Debian 10, a instalação do node.js pode ser feita através dos seguintes comandos:
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash
sudo apt-get update
sudo apt-get install -y nodejs
Agora que você tem o nodejs instalado, vamos realizar um ajuste que vai eliminar o seguinte erro:
lerna ERR! npm run build exited 2 in 'n8n-node-dev'
O npm 7 bloqueará as instalações se houver um conflito de dependência upstream que não possa ser resolvido automaticamente. Isso com certeza vai acontecer com o seu ambiente n8n.
Para resolver esse problema, basta executar o seguinte comando no terminal:
npm config set legacy-peer-deps true
Desse modo você está instruindo o npm a ignorar esses alertas de dependências. Problema resolvido.
Instalando as dependências de desenvolvimento do n8n
Se você deseja alterar ou estender o n8n, deve ter certeza de que todas as dependências necessárias estão instaladas e os pacotes foram vinculados corretamente.
Os pacotes que o n8n usa dependem de algumas ferramentas de construção:
apt-get install -y build-essential python
O n8n está dividido em diferentes módulos, todos em um único repositório. Para facilitar o gerenciamento desses módulos, o n8n utiliza o lerna
.
Assim o lerna configura automaticamente os links de arquivos entre módulos que dependem uns dos outros.
Portanto, para que a configuração funcione corretamente, o lerna
deve ser instalado globalmente desta forma:
npm install -g lerna
Pronto. Agora podemos continuar com o nosso setup.
Faça um fork do n8n-io/n8n no Github
Agora você precisa fazer um fork do repositório n8nio/n8n para a sua conta do github. Um fork é uma cópia de um repositório.
O fork de um repositório permite que você experimente livremente as alterações sem afetar o projeto original.

Agora faça o checkout do seu repositório no seu computador:
git clone https://github.com/<yourusername>/n8n.git
Acesse a pasta que você acabou de fazer checkout, e adicione o repositório n8n original como upstream ao seu fork:
git remote add upstream https://github.com/n8n-io/n8n.git
Agora, vai um outro truque: durante o processo de build, você irá alterar o package.json, o que não é aconselhado pois este é mantido pelo time do n8n. Para evitar que o seu package.json entre nas suas pull requests, basta executar o seguinte comando:
git update-index --skip-worktree package.json
Você pode realizar esse comando para qualquer outro arquivo que você deseja alterar localmente, porém não quer enviar na pull request 😉
Pronto, agora vamos instalar todas as dependências de todos os módulos e vinculá-los com o lerna
:
lerna bootstrap --hoist
Esse processo é bem demorado, basta acompanhar o progresso e você terá seu ambiente configurado.
Conclusão
Agora é só você realizar os ajustes, traduções, correções e adicionar novos nodes ao n8n.
Um abraço!