New: Template Node Package for custom node development

Hi all, another utility release. This time a template for node development in case anyone is interested.

This is a full package with all of the basic parts in place and ready for you to tailor to your own design.

It follows a pattern that I've developed and been using for my own Nodes such as uibuilder.

Here are the key features:

  • A complete package including package.json, editor configuration files (based on VScode and ESLint), helper scripts and documentation starter.
  • The Editor html file is built from 3 component files (panel help, editor ui and javascript) - a simple build script (with optional watcher) is used to compile the 3 components and a template into the node.html file. This makes it MUCH easier to develop.
  • Pre-built package.json - just needs some editing to customise the names to your own.
  • The package.json includes a number of useful npm run scripts including build/watch the editor html, git management, npm & git tagging.
  • The package.json also includes a few useful dev. dependencies.
  • Instructions on how to use the template including all of the edits you need to do.
  • The Node's runtime javascript is templated with comments to make it easier to get a standard approach.
  • GitHub configuration includes contributing, issue, PR templates and a code of conduct.
  • Apache 2.0 license included (the code is also Apache 2 licensed).

Obviously this will not be published to npm since it is not meant to be installed. Rather, you simply fork the GitHub repository, rename your fork and then edit as you normally would. Alternatively, simply download the release package and do whatever you like.

4 Likes

That looks really good. I will certainly give it a go next time I am developing a node.

Amazing to see this as boilerplate. I had already copied your script from the uibuilder v2 branch :wink:
Would it be okay if I fork this to make it a cookiecutter boilerplate ready for install/work from?

Thanks :smile:

Yes, do whatever you want with it - it is just the way I work and I'd be more than happy for you to adapt it to your own way of working.

I made it work with Node.js scripting rather than anything else to keep it in a single language.