Node-RED 3.0 现已可供安装。如果升级,请阅读升级说明

更新日志中有此版本的完整更改列表,但以下是重点内容。



从 Node-RED 2.x 迁移

以下是迁移到 Node-RED 3.x 时需要了解的关键点。

编辑器特性

上下文菜单

我们(终于)在工作区中添加了右键上下文菜单。这使您可以快速访问编辑器中的许多内置操作,并应帮助用户发现更多可用功能。

选择菜单中应包含哪些选项并非易事。有很多可以包含的内容——所以我们必须在提供正确选项和避免菜单过长难以查找之间找到适当的平衡。

连接点 (Junctions)

我们引入了一种名为 junction 的特殊节点类型,它可以使工作流中的连线布线更容易。

与社区中为实现类似效果而发布的各种“no-op”(无操作)节点不同,Junctions 更加紧凑,在工作流中不那么显眼。

当您将鼠标悬停在 Junction 上时,它会展开以显示输入和输出端口。您可以通过拖动其主体来移动 junction,或通过单击/拖动其端口之一来添加连线——就像您对节点所做的那样。

Junctions 不会像常规节点一样出现在节点面板或工作流大纲中,但可以通过快速添加对话框(在工作区中按住 Ctrl 并单击)或新的上下文菜单添加。

您还可以通过按住 alt-shift 拖动鼠标划过现有连线的方式,将一个 Junction 插入其中。请注意,某些操作系统可能会使用相同的组合键来移动活动窗口,因此这种方法在那里将不起作用。我们还没有办法允许自定义鼠标操作,所以受此影响的用户将不得不使用其他方法来添加 Junctions。

调试路径工具提示

当鼠标悬停在调试侧边栏中的节点名称上时,一个新的工具提示会显示该节点的完整位置。这在处理子流程时非常有用,可以更容易地识别生成消息的确切节点。

点击列表中的任何一项将在工作区中显示它。

在编辑器中搜索内容时,工作区中的新工具栏提供了快速跳转到搜索结果的选项。

我们添加了一对新的操作来帮助浏览结果:

  • core:search-next - 快捷键:f
  • core:search-previous - 快捷键:shift-f

我们还添加了一些预定义的搜索,包括将搜索限制在当前工作流中的功能。

默认节点名称

DebugFunctionLink 节点在添加到工作区时现在会被赋予唯一的默认名称。

这个功能可以通过节点的 onadd 函数添加到任何节点,包括 contrib 节点。我们选择这组初始节点是因为它们最能从应用名称中受益。

还添加了一个新操作,它将为任何当前没有名称的选定节点应用一个适当的默认名称。

  • core:generate-node-names

Monaco 文本编辑器

一年前,在 2.x 版本中,我们添加了 monaco 编辑器组件作为默认 ace 编辑器的替代品。它已被证明非常稳定,并提供了更丰富的用户体验。

在 3.0 版本中,我们已将 monaco 切换为默认编辑器。新安装的 Node-RED 将采用此更改——现有安装将需要更新(或删除)其设置文件中的 codeEditor 条目。

最终目标是在明年的 4.0 版本中完全移除 ace

记住光标位置

当您重新打开节点的编辑对话框时,编辑器现在会尝试恢复您的光标位置。这在 Function 节点等其他节点中非常方便,您不必每次打开编辑对话框时都滚动回您正在工作的位置。

访问以前的欢迎导览

我们在 2.1.0 版本中引入了欢迎导览,并为每个版本进行了更新。在此版本中,我们添加了一种在“帮助”侧边栏中访问先前版本导览的方法。

运行时特性

编辑已停止的工作流

我们引入了可选功能,可以在不运行工作流本身的情况下运行 Node-RED。我们已经有了实现类似结果的安全模式,但有了这个新功能,您可以直接从编辑器中停止和启动工作流。运行时会记住工作流的状态,因此当 Node-RED 启动时,工作流将保持相同的启动/停止状态。

此功能默认未启用。要启用它,您需要将以下内容添加到您的 settings.js 文件中:

runtimeState: {
   enabled: true,
   ui: true
}

设置好后,您将在“部署”菜单中看到一个新选项:

单击该选项将停止工作流的运行,但您可以继续编辑它们并部署更改。在停止状态下,Inject/Debug 节点的按钮将被禁用。

当工作流停止时,菜单会显示一个启动选项:

诊断报告

我们添加了一个新的管理端点,用于返回有关运行时及其运行系统的信息。这可用于在报告问题时快速收集信息。

在编辑器中,您可以通过运行“显示系统信息”操作来查看它返回的信息。

我们已注意确保此功能不会返回任何敏感信息。在某些情况下,它会指示是否设置了特定设置,但不会显示其设置的值。

我们意识到,并非每个人都希望暴露此信息,具体取决于他们如何使用 Node-RED。因此,可以通过将以下内容添加到 settings.js 来禁用该端点:

diagnostics: {
    enabled: false
}

多个静态文件夹

运行时长期以来一直支持在其 HTTP 处理中提供一个静态内容文件夹的功能。这对于向网页等提供静态资源非常有用。

在此版本中,您现在可以指定多个要提供内容的文件夹,更重要的是,可以为每个文件夹指定其应在哪个 http 路径下提供服务。

有关如何使用的详细信息,请参阅 #3542

节点更新

我们在 Node-RED 2.1 中添加了 Link Call 节点。它允许您创建一个调用 Link In 节点并获得响应的工作流。主要的限制是您必须硬编码要调用的 Link In 节点。

在此版本中,您现在可以使用 msg.target 来设置它应该调用的 Link In 节点的名称。

Template 节点中的环境变量

Template 节点现在可以使用以下语法访问环境变量:

My favourite colour is {{env.COLOUR}}.

Debug 节点消息计数

Debug 节点有一个新选项,可以在其状态输出中报告已接收的消息数量。

预定义的 HTTP 请求头

HTTP Request 节点现在允许您在节点的编辑对话框中设置请求头,而无需总是将它们作为消息属性传入。

下一步计划?

就像 2.0 版本一样,我们超出了原定于 4 月发布 3.0 的计划。但是我们一直在进行的一系列 beta 版本确实帮助提高了这个版本的整体质量。

主要的挑战一直是投入足够的时间和精力来保持发布节奏。

我们下一个预定的主要版本将是 10 月底/11 月的 3.1 版本。一如既往,我们有大量积压的工作让我们忙碌——但最终这在很大程度上取决于社区的反馈。

如果您有兴趣为 Node-RED 做贡献,现在是时候来论坛Slack 上与我们交流了。

Node-RED 2.x 现在处于维护模式——我们不会再为其添加任何新功能,但会根据需要发布包含修复的维护版本。事实上,我们将在未来几周内发布一个姗姗来迟的 2.2.3 版本。