I know that there will be other solution and whatever, however one of the most annoying things about Node-RED is the way the node development is done: outside of Node-RED. This makes creating nodes unnecessarily complex. What I wanted to do was be able to develop, test, publish and commit my nodes completely in Node-RED.
I had a quick play around with Node-RED editor and discovered that to install new nodes, there is this .tgz upload in the palette manager. This flow utilises that to install nodes dynamically into Node-RED via a flow - in this case a node that creates tarballs.
What else? Well a node needs to have a GItHub repository, so this flow pushes new commits to a nodes github repo from within Node-RED. But to have my nodes available within Node-RED, I need to publish them to npm, well this flow does that too. About the only thing this flow doesn't do is press the update node package at flows.nodered.org - who knows whether there is an API for that.
So now I can develop my nodes in Node-RED and not worry about using Emacs to extend Node-RED, just as I don't use Node-RED to extend my emacs.
Hope it helps!
P.S. nothing is perfect that was developed in a lazy afternoon, so don't worry if it doesn't work. The idea is clear.