项目

项目介绍

项目是一种管理您流程文件的新方式。它不仅仅将您的流程视为简单的文件对,而是代表了创建可重新分发的Node-RED应用程序所需的一切。

它们由Git仓库支持,意味着所有文件都具备完整的版本控制功能,开发者可以使用熟悉的工作流程与他人协作。

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

该功能目前在IBM云环境中不可用。

启用项目

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

Note : The settings.js file exports a JavaScript object. To configure Node-RED you should understand how to modify a JavaScript object by adding new or modifying existing key/value pairs like the editorTheme below.
   editorTheme: {
       projects: {
           enabled: true
       }
   },

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

该功能依赖于系统中已安装gitssh-keygen命令行工具。 Node-RED会在启动时检查这些工具是否存在,若缺失会通知您。

创建您的第一个项目

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

Projects Welcome Screen

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

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

    Node-RED使用开源工具Git进行版本控制。它可以跟踪项目文件的变更,并允许您将这些变更推送到远程仓库。

    当你提交一组更改时,Git会记录是谁通过用户名和电子邮件地址进行了更改。用户名可以是任何你想要的 - 不需要是你的真实姓名。

    您可能已经配置了Git客户端 - 在这种情况下Node-RED会直接复用这些设置。

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

  2. 创建您的项目

    下一步允许您为项目命名并添加描述。

  3. 创建项目文件

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

  4. 设置凭证文件的加密

    由于您可能会选择在GitHub等公开网站上分享项目,强烈建议对凭证文件进行加密。

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

项目将在以下目录中创建:~/.node-red/projects/

使用项目

创建项目后,您可以像往常一样继续使用Node-RED编辑器。编辑器中新增了一些功能模块来支持您的项目工作。

访问项目设置

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

你也可以通过主菜单中的Projects -> Project Settings选项访问此功能。

对话框包含三个标签页:

  • 项目 - 允许您编辑项目的README.md文件。
  • Dependencies - 管理项目所依赖的节点模块列表
  • Settings - 管理项目设置,包括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会自动提交该项目的初始默认文件集。

列表顶部是'Branch'按钮。它允许您在仓库中检出/创建分支。

如果你的代码仓库配置了远程仓库,还会显示一个按钮,展示本地仓库相比远程仓库领先和/或落后的提交次数。你可以选择要跟踪的远程/分支,并将变更推送/拉取到远程仓库。

这是Node-RED编辑器试图简化用户体验的一个方面,它没有暴露git提供的所有各种选项。我们欢迎对此方面的反馈。例如,它不提供重新设置本地提交的选项,或强制将更改推送到远程仓库。您仍然可以通过回退到命令行来完成这些操作。


创建新项目

在您通过迁移现有流程文件创建了第一个项目后,您可以创建更多项目。

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

这提供了三个选项:

  • 打开现有项目
  • 创建一个新项目
  • 克隆项目代码库
打开现有项目

Node-RED 一次只能运行一个项目。打开另一个项目会改变当前运行的流程。

在“打开项目”视图中,您还可以通过将鼠标悬停在列表中的项目上并点击删除按钮来删除项目。但无法删除当前激活的项目。

创建新项目

这允许您创建一个新项目。它提供了与"创建您的第一个项目"系列屏幕相同的选项,但整合在一个界面中。

克隆项目仓库

这允许您克隆现有的远程代码库。您可以使用http(s)git/ssh URL来访问代码库。如果代码库需要身份验证, 您必须在此处提供凭据。

注意:对于http网址,不要在网址中包含用户名和/或密码。您应该在提示时单独提供这些信息。

对于来自GitHub的ssh网址,需要将其从 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,这些文件将限定在当前登录用户范围内,因此无需共享远程凭据。