菜单

核心软件包

相关源文件

本页面提供了 n8n monorepo 结构概述,并解释了每个核心软件包的用途和功能。n8n 被组织成一个 monorepo,包含多个协同工作的软件包,以提供工作流自动化能力。

有关工作流执行引擎的信息,请参阅 工作流执行引擎

Monorepo 结构

n8n 使用 pnpm workspaces 组织成一个 monorepo。该 monorepo 包含几个核心软件包,为 n8n 工作流自动化平台提供了基础。

来源

核心包概述

下表概述了 n8n monorepo 中的主要软件包

描述角色
n8n (CLI)主 CLI 包n8n 的入口点,负责服务器启动、CLI 命令
n8n-core核心功能提供核心服务、工作流执行、文件处理
n8n-workflow工作流基础代码定义工作流结构、节点执行、数据处理
n8n-nodes-base基础节点包含所有标准节点和凭据
n8n-editor-ui前端 UI基于 Vue 的工作流编辑用户界面
@n8n/n8n-nodes-langchainLangChain 集成AI 相关节点和功能
@n8n/config配置配置管理系统
@n8n/db数据库数据库访问和模型
@n8n/backend-common通用后端实用工具共享后端功能
n8n-node-dev节点开发用于节点和凭据开发的 CLI

来源

n8n (CLI 软件包)

CLI 软件包是 n8n 的主要入口点。它提供命令行界面和服务器功能。

主要功能

  • 用于启动服务器、工作进程和 webhook 服务器的 CLI 命令
  • 基于 Express 的 REST API
  • 认证和用户管理
  • 工作流执行和管理
  • 数据库连接和迁移

依赖项

  • 用于 Web 服务器的 Express
  • 用于队列管理的 Bull
  • 用于数据库访问的 TypeORM
  • 各种身份验证库

来源

n8n-core

core 软件包提供 n8n 的基本功能,包括工作流执行、文件处理和凭据管理。

主要功能

  • 工作流执行引擎
  • 凭据加密和管理
  • 文件操作和二进制数据处理
  • 节点执行上下文
  • 用于可扩展性的外部钩子

依赖项

  • 用于 S3 操作的 AWS SDK
  • 用于加密的 Crypto 库
  • 文件处理库

来源

n8n-workflow

workflow 软件包定义了核心工作流结构、节点执行和数据处理。它是工作流定义和执行的基础。

主要功能

  • 工作流和节点定义结构
  • 数据类型和验证
  • 用于动态值的表达式引擎
  • 节点执行助手
  • 错误处理

依赖项

  • 用于实用函数的 Lodash
  • 用于日期处理的 Luxon
  • 用于验证的 Zod

来源

n8n-nodes-base

nodes-base 软件包包含 n8n 附带的所有标准节点和凭据。它是代码量最大的软件包。

主要功能

  • 数百个针对各种服务的节点实现
  • 用于身份验证的凭据定义
  • 用于常见操作的通用函数
  • 节点类型定义

该软件包包含以下节点

  • HTTP 请求
  • 数据库操作
  • 文件操作
  • 电子邮件服务
  • CRM 系统
  • 云服务
  • 以及更多

来源

n8n-editor-ui

editor-ui 软件包提供 n8n 的前端用户界面。它是一个基于 Vue 的应用程序,允许用户创建、编辑和管理工作流。

主要功能

  • 具有拖放界面的工作流编辑器
  • 节点配置 UI
  • 执行历史和日志
  • 用户管理
  • 凭据管理
  • 设置和偏好

依赖项

  • 用于 UI 框架的 Vue.js
  • Pinia 用于状态管理
  • 用于 UI 组件的 Element Plus
  • Vue Router 用于导航

来源

@n8n/n8n-nodes-langchain

n8n-nodes-langchain 软件包通过与 LangChain 集成,提供 AI 相关节点和功能。

主要功能

  • 与各种 LLM 提供商(OpenAI、Anthropic 等)集成
  • 用于语义搜索的向量存储
  • 用于对话历史的内存系统
  • 用于自主工作流的代理框架
  • 文档加载器和文本分割器
  • 嵌入生成

依赖项

  • LangChain 库
  • 各种 AI 提供商 SDK
  • 向量数据库客户端

来源

@n8n/config

config 软件包提供 n8n 的配置管理系统。它允许从各种来源加载配置并根据模式进行验证。

主要功能

  • 从环境变量和文件中加载配置
  • 使用 Zod 进行模式验证
  • 默认值和覆盖
  • 类型安全的配置访问

依赖项

  • 用于模式验证的 Zod
  • 依赖注入系统

来源

包依赖

下图显示了核心软件包之间的依赖关系

来源

构建系统

n8n 使用现代构建系统,包含以下工具

  • pnpm:支持工作区的包管理器
  • TypeScript:用于类型安全的 JavaScript
  • Turbo:用于 monorepo 任务运行和缓存
  • Jest:用于测试
  • ESLint:用于代码检查
  • Biome:用于代码格式化

构建过程通常包括

  1. 将 TypeScript 编译为 JavaScript
  2. 复制静态文件
  3. 生成元数据
  4. 打包以供分发

软件包之间的通用脚本

  • build:构建软件包
  • dev/watch:监视更改并重新构建
  • lint:运行代码检查
  • test:运行测试

来源

结论

n8n monorepo 被组织成几个核心软件包,这些软件包协同工作以提供完整的自动化平台。每个软件包都有特定的角色和职责,从作为入口点的 CLI 到提供实际集成节点的 nodes-base 软件包。

了解这些软件包之间的结构和关系对于希望为 n8n 做贡献或构建自定义节点和扩展的开发者至关重要。