NodeRed nutzt falsches NodeJS?
Ich habe das Problem, dass NodeRed immer mit node.js Version 10 startet. Installiert ist aber node.js Version 18.
Ich habe Node.js und NodeRed jetzt schon mehrfach neu installiert und fange langsam an zu Verzweifeln. Kann mir jemand helfen?
Das ganze läuft auf Ubuntu
Benutzt du nvm?
Jap. Darüber ist auch die v18 installiert worden.
1 Antwort
Im ersten Schritt würde ich prüfen, welche installierte Node-Version aktuell aktiv ist. Mit nvm kannst du dir zudem alle verfügbaren Node-Versionen anzeigen lassen.
node --version
nvm ls
Mit
nvm alias default 1.2.3
kannst du eine Installation als Standard festlegen. Die Versionsnummer müsstest du natürlich für dich noch anpassen. Laut Dokumentation ist Node 16.x die aktuellste Version, die von Node-RED unterstützt wird.
Die Dokumentation führt ebenso auf, dass bei einem Upgrade der Node.js-Version ein Rebuild der Module notwendig ist. Folge dazu der Anleitung.
Schau außerdem noch, ob es in deinem Node-RED-Installations-/Projektverzeichnis eine package.json gibt, die womöglich eine falsche Version unter node/engines festlegt.
Ja, die V16.15.1 ist deine aktuelle, globale Node-Version. Die Version 10 sehe ich in deiner Liste nicht einmal. Das bedeutet, es muss eine lokale Node-Version sein, die da aktuell verwendet wird oder ein Setting ist falsch.
Die Ausgabe von Node-RED in der Konsole (siehe Abbildung) nutzt das process.version-Property, welches sich wiederum auf die Umgebungsvariable NODE_VERSION bezieht. Schau nach, ob es eine Konfigurationsdatei gibt, die diese Variable setzt.
Suche außerdem nach Dateien wie .node-version oder .nvmrc (Letztere ist bei NPM wahrscheinlicher). Diese dienen öfter dazu, (einem Package Manager) eine Node-Version vorzugeben (oder du startest direkt eine Volltextsuche über alle Dateien mit der 10.19.0 als Suchbegriff). Du könntest auch selbst eine solche Datei in dein Projektverzeichnis/das Node-RED-Verzeichnis legen. Der Dateiinhalt wäre die Versionsnummer (16.15.1). Als Fallback dient die Angabe der Engine in der package.json. Die kannst du ebenfalls ergänzen.
"engines": { "node": ">=16.15.1" }
Möglicherweise löst das das Problem. Andernfalls könntest du noch dieses Installationsskript probieren.
Vielen Dank für die Ausführliche Erklärung. Leider hat mich das noch nicht viel weiter gebracht.
Anhand der Ausgabe würde ich mal tippen, ich habe die V16.15.1 installiert und sie ist als default gesetzt. sehe ich das richtig?
anhand der Dokumentation habe ich auch das rebuild gemacht. trotzdem startet es weiter mit Node.js V10.19.0
Und das kann ich absolut nicht verstehen.
In der package.json steht folgendes, was davon bezieht sich auf die Engine?: