添加模版设置
在FlowForge中,每个项目都是从模板创建的。模板为项目定义了一组预配置的选项。这包括运行时设置- 比较常见就是 Node-RED settings.js文件中设置的值。
模板还定义了项目可以自定义哪些选项。
本篇文章就来解释一下如何向模板对象中添加新的Node-RED运行时选项,以便开发者可以为单个实例进行自定义,并传递到底层Node-RED settings.js文件。
对于简单的布尔/字符串/数字类型来说,可以直接定义。对于其他类型(对象/数组),就变得稍微复杂,目前官方也没有好的例子。
对于一般的情况,可以按照以下步骤来设置模版:
- 更新前端
- 为设置选择一个名称,将其添加到已知设置和所需的任何验证逻辑列表中
- 将其添加到适当的模板部分
- 更新运行时
- 将其添加到已知的设置列表和任何额外的验证逻辑中
- 更新启动器
- 使用新属性更新用于生成settings.js的模板
更新前端
前端中有一组视图用于显示和编辑模板。它们以两种不同的方式使用:
创建/编辑模板时。所有选项都可用,有一个下拉列表,允许用户在设置上设置策略(控制项目是否允许覆盖设置)
编辑项目设置时。显示所有选项,但仅允许用户修改模板策略允许更改的选项。
这种对视图的重用节省了大量代码重复,在实现时会造成一些复杂性。
为设置选择一个名称
该名称应尝试在Node-RED settings.js文件中匹配其相应的属性。
编辑frontend/src/pages/admin/Template/utils.js
将新属性名称添加到templateFields
和defaultTemplateValues
对象中。请注意,这些名称是扁平字符串,_用作层次,分隔符…。
如果值需要任何形式的验证,请将其添加到同一文件中的templateValidators
中。
1.2 – 将其添加到适当的模板部分
目前支持自定义的配置有:
编辑
调色板
环境-不太可能添加其他选项的特殊情况
这些都存在于自己的文件下 frontendfrontend/src/pages/admin/Template/sections/
。
选择要添加的设置(即复选框或文本输入)最匹配的现有设置,并将其条目复制到适当的位置。
确保将复制的属性名称的所有引用更新为新属性名称。
更新运行时
将其添加到已知列表中
编辑forge/db/controllers/ProjectTemplate.js
,将新属性添加到已知设置列表中。
在同一文件中,使用所需的任何额外验证或数据清理来更新validateSettings
函数。
更新nr-launcher
在 flowforge-nr-launcher
项目里
编辑lib/runtimeSettings.js
,将新的设置包含在生成settings.js文件中。请注意,你必须处理新设置不存在的情况-要么使用合理的默认值,要么省略该值。