项目

介绍项目

项目是管理您的流程文件的一种新方式。与其将您的流程视为一对简单的文件,不如将其看作创建可再分发的 Node-RED 应用所需的一切。

它们由 Git 仓库支持,这意味着所有文件都受到完整的版本控制,并允许开发人员使用熟悉的工作流程与他人协作。

在 0.18 发布中,项目功能处于预览模式。这意味着必须在设置文件中启用它。

该功能目前不适用于 IBM Cloud 环境。

启用项目

要启用项目功能,请编辑您的 settings.js 文件,在 module.exports 块中添加以下选项,然后重新启动 Node-RED。

注意 : settings.js 文件导出一个 JavaScript 对象。 要配置 Node-RED,您需要了解如何通过添加新或修改现有键/值对来修改 JavaScript 对象,例如下面的 editorTheme
   editorTheme: {
       projects: {
           enabled: true
       }
   },

也可以通过将环境变量 NODE_RED_ENABLE_PROJECTS 设置为 true 来启用项目功能。

该功能依赖于可用的 gitssh-keygen 命令行工具。Node-RED 在启动时将检查它们是否存在,并在缺失时通知您。

创建您的第一个项目

当您打开编辑器时,您会看到一个欢迎屏幕,邀请您使用现有的流程文件创建第一个项目。

项目欢迎屏幕

它将引导您完成以下步骤:

  1. 设置您的版本控制客户端

    Node-RED 使用开源工具 Git 进行版本控制。它跟踪您项目文件的更改,并让您将其推送到远程仓库。

    当您提交一组更改时,Git 会记录是谁进行了更改,并附上用户名和电子邮件地址。用户名可以是您想要的任何东西——不必是您的真实姓名。

    您可能已经配置了 Git 客户端——在这种情况下,Node-RED 将重用这些设置。

    您可以随时通过主 Node-RED 设置对话框更改这些设置。

  2. 创建您的项目

    下一步让您为您的项目命名并给出描述。

  3. 创建您的项目文件

    Node-RED 会自动将您现有的流程文件迁移到您的项目中。如果需要,您可以在此处选择重命名它们。

  4. 设置您的凭据文件的加密

    由于您可能选择在 GitHub 等公共网站上共享您的项目,因此强烈建议您加密您的凭据文件。

    要加密它,您需要选择一个密钥,用于保护该文件。此密钥不会存储在项目中。如果其他人克隆您的项目,您将需要提供密钥以解密凭据文件。否则,他们需要编辑流程以提供自己的凭据。

该项目将在以下目录中创建: ~/.node-red/projects/<project-name>

使用项目

创建项目后,您可以继续像往常一样使用 Node-RED 编辑器。编辑器中添加了一些新部分,用于处理您的项目。

访问项目设置

信息侧边栏现在在顶部显示您正在处理的项目。项目名称旁边有一个按钮,可以打开项目设置对话框。

您还可以从主菜单中的 Projects -> Project Settings 选项访问此设置。

对话框有三个选项卡:

  • 项目 - 让您编辑项目的 README.md 文件。
  • 依赖项 - 管理您项目所依赖的节点模块列表
  • 设置 - 管理项目设置,包括 git 远程
项目依赖项

每个项目都有自己的 package.json 文件,其中包含项目所依赖的节点模块列表。Node-RED 编辑器跟踪您在流程中使用的节点,并帮助您保持该依赖项列表的最新状态。

在上面的截图中,当前项目的 package.json 文件中列出了三个模块,每个模块处于不同状态:

  • node-red-node-mysql 当前未安装
  • node-red-node-random 当前流程正在使用
  • node-red-node-rbe 列出,但当前流程未使用

最后,node-red-node-smooth 提供了一个当前流程正在使用的节点,但该模块未列为依赖项。

确保依赖项列表保持最新状态是与他人共享项目的重要条件——这将帮助用户安装必要的模块。

项目设置

项目设置选项卡让您管理流程文件、凭据的加密配置,并配置您的本地 git 分支和远程仓库。

版本控制

侧边栏中新增了一个 history 选项卡。在此处,您可以管理项目的版本控制。该选项卡有两个部分:

  • 本地更改 - 显示已更改的项目文件,允许您暂存和提交它们。
  • 提交历史 - 仓库中所有提交的列表,并有工具可以推送提交到远程仓库。
本地更改

每当您更改项目文件,例如通过部署新流程配置时,它将列在“本地文件”部分。您可以单击文件名查看更改的差异。当您将鼠标悬停在文件上时,您会看到一个 + 按钮——单击该按钮将暂存文件,将其移动到“待提交更改”列表。

当您已暂存要提交的文件时,单击 commit 按钮,输入消息并确认。


提交历史

提交历史部分列出当前分支中的所有提交。当您创建项目时,Node-RED 会自动提交项目的初始默认文件集。

列表顶部是“分支”按钮。该按钮允许您在仓库中检出/创建分支。

如果您的仓库配置了远程仓库,还有一个按钮显示您的本地仓库与远程相比超前和/或落后多少个提交。它允许您选择要跟踪的远程/分支,并将您的更改推送/拉取到远程。

这是 Node-RED 编辑器尝试简化用户体验的一个领域,并未暴露 Git 提供的所有各种选项。这是一个我们欢迎反馈的领域。例如,它不提供将您的本地提交变基或强制推送更改到远程的选项。您仍然可以通过回到命令行来执行这些操作。


创建新项目

在迁移现有流程文件并创建您的第一个项目后,您可以创建其他项目。

从菜单中选择 Projects -> New 打开项目对话框。

这提供了三种选项:

  • 打开现有项目
  • 创建新项目
  • 克隆项目仓库
打开现有项目

Node-RED 每次仅运行一个项目。通过打开另一个项目,您将更改正在运行的流程。

“打开项目”视图还允许您通过在列表中将鼠标悬停在项目上并单击删除按钮来删除项目。您无法删除当前活动项目。

创建新项目

这让您创建一个新项目。它提供与“创建您的第一个项目”相同的选项,但合并为一个。

克隆项目仓库

这让您克隆一个现有的远程仓库。您可以使用 http(s)git/ssh url 来设置仓库。如果该仓库需要身份验证,您必须在此处提供。

注意: 对于 http url,请不要在 url 本身中包含您的用户名和/或密码。您可以在提示时单独提供这些信息。

对于来自 GitHub 的 ssh url,您需要将其更改为 git@github.com:username/project 变为 ssh://git@github.com/username/project

Node-RED 目前不使用您可能为 git 客户端配置的任何凭据助手。这是我们希望社区反馈的一个领域。

对于 git/ssh,Node-RED 将提供可用 ssh 公钥的列表。该列表是通过扫描 ~/.ssh 查找以 .pub 结尾的文件,这些文件具有对应的私钥文件。它还允许您通过主设置对话框的“Git 配置”选项卡生成新的公钥/私钥对。这些文件存储在 ~/.node-red/projects/.sshkeys/ 下。如果您启用 adminAuth,这些文件的作用域仅限于当前登录用户,因此他们不需要共享远程凭据。