Node-RED 2.0 has mostly focused on removing support for older versions of Node.js and update a number of internal dependencies. Still, the new flow debugger and flow linter, both available as plugins, will be a welcome addition to most developers.
Node-RED flow debugger allows you to set breakpoints on node ports, so your flow will stop each time a new message is received on that port. This makes it possible to inspect all the messages that are queued and waiting to be processed. You can also execute the flow one message at a time, or delete a queued message. This possibility is especially relevant since Node-RED went async a couple of years ago, thus making the relative order of message handling less intuitive.
At the moment, the flow debugger does not support conditional breakpoints nor editing queued messages, but both features are in the works. Likewise, it is not currently possible to pause only a subset of nodes, but it will be in a future release.
Node-RED flow linter, called
nrlint can be used to identify potential problems in a flow.
nrlint uses a set of rule to identify potentially incorrect uses, such as leaving the output of an HTTP
In node not connected to any HTTP
nrlint can also be integrated with
The Node-RED linter uses a browser Worker thread and provides its results in a separate sidebar, allowing you also to quickly navigate to the areas of your flow that need attention.
nrliter can be alternatively run from the command line to integrate the linting step in a CI pipeline.
Still on the developer experience front, Node-RED 2.0 replaces its code editor ACE with Monaco. Monaco is the editor engine that powers Microsoft Visual Studio Code and will make all Visual Studio Code developers feel at home in Node-RED 2.0. Monaco is enabld by default, but user can switch back to ACE it they require so.
Other notable improvements to Node-RED 2.0 include a new
node-red admin init command to easily create a correctly configured settings file; improved support for calling external modules from
Function nodes; the Report By Exception (
RBE) node, used to discard messages when their data has not changed, is now part of the default palette and has been more meaningfully renamed to
Filter; and more.