Node-RED 2.0.0 里程碑版本发布
🚨 重要迁移信息
Node.js 版本要求
- Node-RED 现在需要 Node.js 12.x 或更高版本
节点依赖重大更新
以下节点有重大依赖更新,除非特别说明,否则应该完全向后兼容:
- RBE 节点:
- 重新标记为 'filter' 以提高可发现性
- 成为核心选项板的一部分,而不是单独的模块
- Tail 节点:
- 已从默认选项板中移除
- 可以从 node-red-node-tail 重新安装
- HTTP 请求节点:
- 使用不同的底层模块重新实现
- 努力保持 100% 功能兼容性,但某些边缘情况可能仍然存在
- JSON 节点:
- 模式验证选项不再支持 JSON-Schema draft-04
- HTML 节点:
配置变更
- functionExternalModules 现在默认对新安装启用
- 如果现有设置文件包含此设置,需要手动将其设置为 true
外部模块安装位置
- 外部模块现在安装在 Node-RED 用户目录(~/.node-red)中,而不是子目录中
- 所有依赖项将列在顶层的 package.json 中
- 现有的外部模块将在首次运行 Node-RED 2.0 时重新安装到新位置
🚀 运行时重大改进
核心架构
- 设置文件重组:重新组织默认 settings.js 以更有条理 (#3012)
- 流程文件命名:修复设置中的流程文件名称为 flows.json (#2951)
- HTTP 根路径:弃用 httpRoot 的使用 (#2953)
- 国际化更新:更新编辑器和运行时的最新 i18n (#2940)
安装与依赖管理
- npm 安装钩子:为 npm 安装处理添加 pre/postInstall 钩子 (#2936)
- 引擎严格模式:为 npm 安装参数添加 engine-strict 标志 (#2965)
- 依赖更新:更新所有依赖项 (#2922)
- 构建系统:从 Travis 迁移到 GitHub Actions (#3042)
性能与稳定性
- 节点 ID 生成:更改为生成固定长度值且不带 '.' 的节点 ID (#2987)
- 通信优化:批量发送通信消息以防止泛滥 (#3025)
- 钩子系统:将钩子移动到 util 包,重新构造为链表
- 错误处理:修复 runtime/lib/api/nodes 中的错误处理
🎨 编辑器革命性更新
Monaco 代码编辑器集成
- [重大] 添加 Monaco 代码编辑器 (#2971)
- 更新到最新 Monaco (#3007, #3015)
- 在 Monaco 中更新 Node-RED Function 类型定义 (#3008)
- 为 Monaco 编辑器添加 JSONata 支持
用户界面现代化
- CSS 变量:为某些关键颜色添加 CSS 命名变量 (#2994)
- 选项卡标签:为溢出的选项卡标签添加轻微淡出效果
- 侧边栏优化:为侧边栏打开选项卡的标签提供更多空间
- 通知框:缩小默认通知框大小
- 导出对话框:改进导出对话框 JSON 字体颜色的对比度
功能增强
- 大纲视图:
- 在大纲中选择时显示配置节点详细信息
- 修复子流程条目信息大纲的布局
- 节点帮助:如果设置了 paletteLabel,则在帮助侧边栏中使用
- 插件系统:为编辑器添加 RED.hooks
- 国际化:更新翻译 (#3063, #3020, #3022)
交互体验改进
- 选项卡管理:
- 在活动选项卡旁边打开子流程选项卡,而不是在末尾
- 支持在选项卡栏中使用鼠标滚轮滚动
- 拖放操作:修复将节点拖入缩放工作区时的缩放问题
- 快捷键:修复信息提示中不正确的快捷键 (#2980)
🔌 节点功能全面升级
核心节点重大变更
- 过滤器节点(原 RBE):
- 重新标记为 'filter' 并移入核心 (#2944)
- 移除 tail 节点功能
- HTTP 请求节点:
- 迁移到 'got' 模块 (#2952)
- 修复代理处理 (#3044, #2983, #3009)
- 处理用户名中包含 @ 的基本认证 (#3017)
- 修复 msg.responseUrl (#2986)
- 注入节点:
- 迁移到 CronosJS 模块 (#2959)
- 在编辑对话框中添加"立即注入"按钮 (#2990)
- 重新排序 TypedInput 选项 (#2961)
- JSON 节点:
- 更新 ajv 到 8.2.0 - 放弃对 JSON-Schema draft-04 的支持 (#2969)
- HTML 节点:
节点功能增强
- 延迟节点:
- 允许 msg.flush 指定从节点刷新多少消息 (#3059)
- 延迟节点增强 (#2294, #2949)
- 为延迟节点增强添加日语翻译 (#2958)
- 函数节点:
- 外部模块现在默认启用 (#3065)
- 外部模块现在支持 ES6 和 CJS 模块 (#3065)
- WebSocket 节点:
- 为客户端节点添加发送自动 ping 的选项 (#3056)
- 合并节点:
- 文件节点:
- 添加 fileWorkingDirectory (#2932)
- 为文件输入节点添加包含所有属性的选项(默认关闭)(#3035)
- 执行节点:
- 添加 windowsHide 选项以在 Windows 下隐藏窗口 (#3026)
- TLS 节点:
- 为 TLS 节点添加 ALPN 支持 (#2988)
调试功能
- 调试节点:
- 为调试添加 Map/Set 属性类型支持 (#3040)
- 更新以处理紧凑通信格式
🔧 开发与部署改进
管理工具
- node-red admin:添加 node-red admin init(通过 node-red-admin@2.1.0)
- 只读模式:在启动时记录 readOnly (#3024)
插件与模块
- 外部模块路径:支持加载外部模块子路径(修复 #3023)
- 库导入:确保 RED.clipboard.import 显示正确的库(修复 #3021)
主题与样式
- 主题支持:在默认设置文件中添加 'theme'
- 节点图标:改进 red-ui-node-icon css 并添加 red-ui-node-icon-small 修饰类
这个 2.0.0 版本是 Node-RED 的一个重要里程碑,引入了 Monaco 代码编辑器、现代化的用户界面、重大节点更新和架构改进,为未来的发展奠定了坚实的基础。
git下载:
国内高速下载通道: