Node-RED 0.15 现已可供下载或通过 npm install 安装。

如果要升级,请阅读升级说明

如果您正在使用树莓派 Jessie 上的预装版本,其软件仓库将在不久的将来更新。


编辑器更新

面板编辑器

现在可以从编辑器内部管理您的面板了。这让您可以浏览所有可用节点的目录,并安装其中任何一个,而无需重启 Node-RED。

在底层,这将触发 npm 将节点模块安装到您的用户目录中——默认为 $HOME/.node-red。请注意,如果节点除了标准的 npm 依赖外还有任何其他依赖,您需要手动解决它们。它还需要您安装了 npm,如果您使用的是树莓派预装镜像,可能没有安装——请查看文档了解如何获取它。

可滚动的标签页

在上一版本中,我们让您可以重新排序工作区标签页,但我们知道还有更多工作要做。一个常见的抱怨是编辑器如何处理包含大量标签页的流;我们会将它们全部挤进视图中,导致几乎不可能第一次就跳到正确的标签页。这也使得“流”菜单无法使用,因为它会超出页面底部。

在这个版本中,我们的处理方式更加合理,允许标签栏滚动,这样标签页就不会变得太小。这确保了它们的标签始终清晰可辨。我们还从“流”菜单中移除了标签页列表。

但等等,我听到您在问,如果标签页现在被滚动到屏幕外,而且没有菜单项,那怎么能快速在标签页之间导航呢?嗯,我回答说,您会想看看新的搜索框……

我们增加了一个搜索框,可以轻松快速地找到任何标签页或节点。您可以从菜单中的“搜索流”选项访问它,或者直接按 Ctrl+.(在 Mac 上是 Cmd+.)。当您输入时,它会显示一个可能的匹配列表,您可以点击想要的那个,或者使用光标键并按回车键。

如果您选择一个流或子流,它将切换到相应的标签页。如果您选择流中的一个节点,它会切换到相应的标签页,滚动以确保节点可见,并闪烁其边框以便您发现它。如果您选择一个配置节点,它将在配置节点侧边栏中显示它。

导入/导出改进

导入和导出对话框有了一些小的更新。导入流时,您现在可以选择将其导入到一个新的流中,而不是当前流。

导出对话框为您提供了更多关于导出内容的选择——无论是选定的节点、当前流还是所有流。您还可以选择导出内容是美化格式还是最小化格式。

导入方面还有几个新功能

  • 如果您导入一个面板中已有的子流,我们会避免重复创建
  • 您现在可以在导入的流 JSON 中包含凭证

其他事项

  • 当您在流之间切换时,我们会更新浏览器中的 URL,这样您可以直接链接到特定的流或子流

  • 我们更改了新配置节点的默认作用域。当我们引入将配置节点的作用域限定在特定流的概念时,我们默认设置为您所在的当前流。这引起了很多困惑,因为用户不一定理解作用域的作用,并最终在每个标签页上创建了相同的配置节点。在这个版本中,我们将配置节点默认设置为全局。

运行时更新

加密凭证

我们一直注意确保任何凭证属性都不会存储在主流文件中,而是放在一个专门的凭证文件中。这意味着主流文件可以进行版本控制,而不用担心泄露任何敏感信息。然而,我们无法回避凭证确实需要与流保持同步的事实,只对其中一个进行版本控制是没有意义的。

随着我们准备为 Node-RED 添加版本控制支持,我们需要采取措施保护凭证,同时使其能够进行版本控制。

因此,我们现在默认加密凭证。这意味着您将无法再手动编辑凭证文件,除非您选择明确禁用加密。我们如何做到这一点的具体细节在维基这里有说明。

防止覆盖保护

为准备版本控制支持,/flows 管理 API 已更新,包含了流的版本标识符。当您点击部署按钮时,编辑器现在可以检查运行时中的流是否是它最初加载的那些。这有什么用呢?这意味着如果有人在您还在处理您的更改时部署了一些更改,当您来部署时,编辑器会警告您。在这个版本中,我们给您选择是继续部署(覆盖已做的任何更改),还是取消部署。

我们已经开始着手实现查看已做了哪些更改的功能,以便您可以在部署前将它们合并到您的更改中,但这部分没能赶上这个版本。

由于对 /flows 的更改不向后兼容,我们添加了一个新的自定义 HTTP 头部来标识应使用哪个版本的 API。这意味着任何现有对 /flows API 的使用将继续工作,但可以轻松选择使用新行为。这个新 API 的文档将于本周晚些时候更新。

Node 0.10

最后,我们需要谈谈 Node.js 0.10。在本月底,它将不再接收任何更新——包括安全更新。这个生命周期结束意味着我们很难再为其维护支持。已经有一长串模块放弃了对 0.10 和 0.12 的支持,这让我们在这些模块中发现关键问题时陷入困境。

我们之所以坚持使用 0.10 这么久,唯一的原因是它是 Debian Stable 自带的版本——因此也是我们树莓派预装镜像中唯一可用的版本。Debian Stable 在相当长一段时间内都不会更新,所以我们有点进退两难。

在探索了多种选择后,我们决定 0.15 系列将是最后一个支持 node 0.10 0.12 的版本。

下一个里程碑版本 0.16 将需要 Node 4.x。

这意味着,目前,树莓派预装版将固定在 0.15。为了方便起见,我们已经在预装镜像中包含了一个名为 update-nodejs-and-nodered 的脚本,它使用 NodeSource 仓库将 node.js 更新到最新的 LTS 版本,然后重新安装 Node-RED。请参阅文档了解更多信息——包括如果您选择手动升级的说明。

串口节点

node.js 世界中比较痛苦的一部分是处理二进制依赖。在版本之间升级时,确保这些依赖继续按预期工作可能是一个真正的头痛问题。

我们在此通知,在 0.16 版本中,我们将移除 node-red-node-serialport 作为默认依赖项

这意味着我们将不再把串口节点作为核心安装的一部分。

这将移除大量依赖于硬件/平台的代码,对于不需要该节点的用户来说,可以加快安装时间并缩小运行时占用空间。

这也将使升级更加可靠,因为串口代码将不再深埋于 Node-RED 内部,可以像任何其他节点一样进行升级。

这意味着,如果您正在使用串口节点,在升级到 0.16 后需要手动安装它们——我们会在该版本发布时分享更多细节。

最后……

请留意下周的一些公告……我们有一些激动人心的消息要分享!