BADENGINE errors

Installing nodes from the pallete automatically uses the '--engine-strict' switch.
This is causing me multiple problems: I'm using npm 9.8.1, and many of the nodes I'm trying to (re)install require npm 8.x
What's the best way around this? Roll back to npm 8.x? Apply --ignore-engines? Is there a way to modify the Palette Manager defaults?
I'm particularly wanting to install -contrib-timeprop; but the same issue has cropped up with other nodes recently, after re-building NR following SD card failure.

The engines property is only for node version not npm.

This node doesn't have an engines setting.

Maybe you could share an actual log error?


At a guess, you have installed node v20 and you are getting problems with some nodes ?

I would personally recommend v18 max for now.

I'm on node v18. Here's the log from the attempted install:

Install : node-red-contrib-timeprop 1.0.1
npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --production --engine-strict node-red-contrib-timeprop@1.0.1
[err] npm
[err] WARN
[err] config production Use --omit=dev instead.
[err] ERR!
[err] code EBADENGINE
[err] npm
[err] ERR! engine Unsupported engine
[err] engine Not compatible with your version of node/npm: particle-api-js@10.3.0
[err] npm
[err] ERR! notsup Not compatible with your version of node/npm: particle-api-js@10.3.0
[err] notsup Required: {"node":">=12.x","npm":"8.x"}
[err] notsup Actual: {"npm":"9.8.1","node":"v18.18.2"}

This is the issue. Not the time node. It does in fact demand npm v8. See here

This is odd & rather strict!

If you don't need this you could find out what is requiring it & if not needed uninstall it.

Thanks Steve, will look into it later, with a clearer head! I'm not especially aware of particle, what it's for or why it might have been default installed...

Probably a node you have installed has pulled it in. If you go into your .node-red folder (or the folder where the flows file is) and run
npm list particle-api-js
It should tell you.

I ran npm list and it returned '---empty'.

Using the palette manager to remove 'particle*' seems to have cured things.

So for clarity - if there's a node with an unsatisfied npm requirement, it will block installation of any other new node?

That can be the case, that is something that npm does, it is not specifically a node-red issue.

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