Custom node installed but not showing in palette or list of installed modules

Hi

I just started making a custom node because I wanted an easy way to interpret Ikea button messages in Node Red. This will be used in Home Assistant. The node/package/code can be found here: https://flows.nodered.org/node/node-red-contrib-button-interpreter I can search for this node in Node Red integrated in Home Assistant, and click on 'install'. Installation completes without errors, but even after a restart of Node Red or Home Assistant, the new node doesn't show up in the pallet. Also, it isn't listed in the list of installed modules. However, when I search for it again and click on install, I now get an error because the package is already installed. I looked at the node_modules folder, and indeed all files are there. As this is my first throw at creating a node, I'm sure I must have made an obvious mistake, but I can't find it. No error is shown in the logs or in developer console of my browser. What else can I do to figure out what's going on? Side note: the code is running fine in my developer instance of Node Red.

Thanks for any help!

Hi Merijn,

This is indeed very weird.
Everything seems to be fine, and like you say it doesn't show up in the palette.
What is also weird, that the button keeps displaying "install" instead of "installed":

image

But when you click again on the "install" button, you will get "Module already loaded".
Hopefully this does ring a bell to somebody else, because I have not experienced this kind of behaviour before ...
Bart

Thanks for verifying and confiming my issue!

could it be due to the error that shows up when installing?

-----------------------------------------------------------
2021-05-27T09:09:53.183Z Install : node-red-contrib-button-interpreter 0.0.2

2021-05-27T09:09:53.219Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --production node-red-contrib-button-interpreter@0.0.2
2021-05-27T09:10:04.568Z [err] npm WARN xterm-addon-fit@0.3.0 requires a peer of xterm@^4.0.0 but none is installed. You must install peer dependencies yourself.
2021-05-27T09:10:04.568Z [err] npm WARN node-red-project@0.0.1 No repository field.
2021-05-27T09:10:04.581Z [err] npm WARN node-red-project@0.0.1 No license field.
2021-05-27T09:10:04.581Z [err] 
2021-05-27T09:10:04.581Z [out] + node-red-contrib-button-interpreter@0.0.2
2021-05-27T09:10:04.581Z [out] added 1 package in 10.073s
2021-05-27T09:10:04.618Z rc=0

This was done on a Mac.

Those errors/warnings don't come from my package, do they? I surely don't need those dependencies and I didn't declare them in my package.json.

The problem is with your package.json file.

You are missing the nodes property under the node-red section:

    "node-red": {
        "nodes": {
            "buttoninterpreter": "buttoninterpreter.js",
            "buttonsettings": "buttonsettings.js"
        }
    },
2 Likes

Thanks for the tip. I'll try changing that this evening. But is it not strange that the same files do work in my development environment?

Yes, that is strange. But it will depend how you have got your dev environment setup and how/where the node has been installed in it.

If the nodes are under ~/.node-red/nodes then node-red will be loading them as 'local' nodes by scanning that directory for any .js and .html file pairs.

When installed properly under ~/.node-red/node_modules/... then Node-RED relies on the package.json to tell it what files it needs to load.

Sounds logical. In my dev setup, the files are located under ~/.node-red/nodes

Had to wait a little for things to trickle down to flows.nodered.com but I'm happy to say, it works now. Knolleary's suggestion did the trick, but thank you all for your help.

Kind regards,
Merijn

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.