看完整篇文章,理清思路再动手,注意环境的区别
目录
本地环境说明
创建节点所需的环境
安装 Git
Nodejs
下载n8n
节点创建
创建节点文件
UI界面显示这个节点
踩坑合集
node的版本问题
ubuntu 镜像源的问题
安装过程中我遇到的帖子
这里说一下哈,我不是搞前端的,所以前端的包引入之类的操作如果报错,我也不知道怎么解决,一般都是找issue或者官网wiki之类的地方找答案。
自定义这种东西必须得依靠官网给的文档来才可以操作成功。
本地环境说明
我自己的系统是windows10的子系统 Ubuntu 20.04 LTS。关于子系统的安装可以看这里windows10安装docker桌面版巧遇WSL2更新安装 中的【场景问题集合】。下面是我子系统的版本。
创建节点所需的环境
官网说,创建节点就必须要有git、nodejs,而且nodejs的版本还必须是14.x ,而 npm 必须是 6.x,还有一个包管理工具 lerna
安装 Git
不多赘述,参照文档
Nodejs
#使用Ubuntu
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
上述的url中的14 是指我需要安装node的版本,换成其他的版本也可以生效
执行完上面两天命令后就可以通过node -v
和 npm -v
命令查看我们的版本了
下载n8n
文档的意思是,让我们fork一下n8n这个项目,然后通过自己fork的仓库进行下载就好
大致操作如下:
进入n8n的github页面,点击右上角fork就可以了(我这里已经fork了),点击之后会进入一个让你通过地址克隆的页面,不用理会,但是要复制那个地址
地址大概率就是下面这个样子
git@github.com:SinMu-L/n8n.git
# 也有可能长这样,这两个都是指向的同一个地址
https://github.com/SinMu-L/n8n.git
我们这里主要是要把它下载下来,所以在命令行里面输入命令git clone git@github.com:<这里是你配置的用户名>/n8n.git
即可
节点创建
下载好了之后 cd 进入 n8n目录后安装文档进行操作就好
创建节点文件
上图大致的意思如下
- 先进入
n8n目录/packages/nodes-base/nodes
,我这里的目录长这样 - 创建一个文件夹:
FriendGrid
- 在
FriendGrid
里面需要创建两个文件:FriendGrid.node.ts
和friendGrid.svg
- 将下面的内容复制到
FriendGrid.node.ts
里面
import {IExecuteFunctions,
} from 'n8n-core';import {IDataObject,INodeExecutionData,INodeType,INodeTypeDescription,
} from 'n8n-workflow';import {OptionsWithUri,
} from 'request';export class FriendGrid implements INodeType {description: INodeTypeDescription = {displayName: 'FriendGrid',name: 'friendGrid',icon: 'file:friendGrid.svg',group: ['transform'],version: 1,description: 'Consume FriendGrid API',defaults: {name: 'FriendGrid',color: '#1A82e2',},inputs: ['main'],outputs: ['main'],credentials: [],properties: [// Node properties which the user gets displayed and// can change on the node.],};async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {return [[]];}
}
friendGrid.svg
这个文件是一张图片,需要同志们下载一个svg图片到当前路径下
这里我的路径是 ~/n8n/packages/nodes-base/nodes/FriendGrid
处理好了之后,~/n8n/packages/nodes-base/nodes/FriendGrid
下就有这些东西
、
UI界面显示这个节点
需要进入路径 ~/n8n/packages/nodes-base
,编辑 package.json
文件
大概在314行的样子插入一条数据
"dist/nodes/FriendGrid/FriendGrid.node.js",
接下来就是需要进入n8n的根目录,这里很重要,只有进入了根目录,才会将ts处理为js文件。
接下来就可以开始建立依赖和模块之间的关联以及构建文件了
# 接下来就是建立关联(将依赖和模块建立联系)
sudo lerna bootstrap --hoist
# 构建文件
sudo npm run build
# 开发模式运行项目,这里会开启8080端口,如果8080端口被占用的话,会开启8081.
# 开发模式下本机访问ubuntu子系统可能存在跨域问题
sudo npm run dev
如果都没有报错的话,那么你距离成功就查最后一步了
重新进入 n8n 的根目录 ,执行命令
sudo npm run build && sudo npm run start
访问 http://localhost:5678
就可以看到我们的n8n的UI界面
踩坑合集
node的版本问题
一定要和官网的版本一致,否则会出现稀奇古怪的问题(至少对于我而言是的)
这里安装nodejs之后就会自带 npm 所以不用太担心 npm 没有安装。
如果 sudo node -v
有版本信息提示,但是 sudo npm -v
没有提示的话,那么重新安装一遍nodejs就可以了,这个网上蛮多教程,请自行搜索
ubuntu 镜像源的问题
直接更新镜像源就好了,可以自行搜索,也可以看我这篇文章
安装过程中我遇到的帖子
Building a custom node - #10 by jan - Questions - n8n
n8n/CONTRIBUTING.md at master · n8n-io/n8n · GitHub
Building a custom node - #11 by ilsemaj - Questions - n8n