Major release
Major Changes
-
Node.js v12+ is the minimum supported environment for Node-RED.
-
Only "modern" browsers are now supported for both the Editor and the uibuilderfe front-end library as ES6 (ECMA2015) code is used.
Let me know if this is a problem and I can build a backwards compatible version.
Template handling is significantly changed in this major release
New instances of uibuilder nodes will only be given the "blank" template which uses no front-end frameworks.
You can load a different template using the "Template Settings" in the Editor.
Loading a new template WILL overwrite any files with the same name. A warning is given though so even if you press the button, you can still back out.
You can choose from the following internal templates:
- VueJS & bootstrap-vue - The previous default template.
- Simple VueJS - A minimal VueJS example.
- Blank - The new default.
- External - See below.
But, you can now also chose an EXTERNAL template! This will let you choose from any remote location supported by degit. You can use TotallyInformation/uib-template-test
as an example (on GitHub).
NOTE: When using an external template, no check is currently done on dependencies, you must install these yourself. I will try to add this feature in the future.
Changing the uibRoot
folder
You can now set uibuilder's root folder - that stores configuration, common, security and each node's front-end code - to a different location. The default location is in your userDir folder in a sub-folder called uibuilder
. If you are using projects, the sub-folder will be in your projects root folder. See docs/changing-uibroot.md for more detail.
Updated
-
Update fs-extra to v10. No longer supports node.js v10, requires v12+.
-
Make some class methods private in web.js and socket.js. Requires node.js v12 as a minimum as it uses an ECMA2018 feature.
-
web.setup and socket.setup can only be called once.
-
Socket.IO updated from v2 to v4.
-
Added Admin API check for whether a url has a matching instance root folder. (Was an outstanding to-do)
-
Reworked the info block that is printed to the log on startup. Much neater and with added info on the webserver being used.
-
Technical Docs have been improved in line with some other work I did recently on enterprise standards.
The docsify configuration has been greatly improved with a new theme and some automation for dates and document front-matter.
Added a new page on changing the uibRoot folder.
Updated the front page with links and explanations of the different sections.
New
-
In the technical documentation, you can now access and search the main README as well as the current and archive changelogs (v1 & v2) in addition to everything else.
Don't forget that you can access the tech docs on the Internet from GitHub AND locally from within Node-RED.
-
nodes/web.js
- Added web.isConfigured to allow a check to see whether web.setup has been called. -
nodes/sockets.js
- Added socket.isConfigured to allow a check to see whether socket.setup has been called. -
Add a new icon to the main readme that allows editing of uibuilder code using VSCode either via a remote repository or via a Docker container.
Fixed
- Node-RED edge-case for credentials was causing node to be marked as changed whenever "Done" button pressed even if no changes made. Turns out to be an issue if you don't give a password-type credential an actual value (e.g. leave it blank). Gave the
JWTsecret
a default value even when it isn't really needed. - Instance details page - CSS now loads correctly even if using a customer server port. Some Socket.IO details that were missing now returned.
- web.js - specifying a custom server port caused uibuilder to crash. Now fixed.
- Lots of tidying up of log messages, especially TRACE level.
- Accidentally include a node.js v14+ issue, now removed.
- Additional try/catch blocks to force better reporting if there is an error in the uibuilder module files.