Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Best practice für node.js und npm Update unter Windows ?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Best practice für node.js und npm Update unter Windows ?

    This topic has been deleted. Only users with topic management privileges can see it.
    • Q
      Qlink last edited by

      Hi Leute,

      nachdem ich nun mehrere vergebliche Updateversuche für node.js und npm bei meiner iobroker Umgebung unter Windows hinter mir habe würde ich mich freuen wenn mir jemand eine kurze step-by-step Anleitung schreiben könnte, wie man ein entsprechendes Update der beiden Komponenten durchführen kann, ohne dass danach Probleme am laufenden Band passieren …

      Ich habe mehrere Anleitungen hier im Forum durchprobiert, hab mir aber jedes Mal entweder iobroker komplett zerschossen oder zumindest einzelne Adapter irreparabel beleidigt(meistens den SQL Adapter).

      Es half in allen Fällen nur ein kompletter Restore meiner iobroker-VM ...

      Weiters wäre es toll, wenn iobroker die Installation von node.js Versionen, mit denen es bekannte Probleme gibt, gar nicht zulassen würde, oder zumindest davor warnen würde...

      Danke für eure Unterstützung.

      Beste Grüße

      1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 last edited by

        Hey,

        ich bin mir nicht sicher ob es genügend Windows-User gibt die hier genügend best practices gesammelt haben.

        Von daher hier einige Allgemeine Infos die, aber allgemeingültig sein sollten.

        ioBroker unterstützt grundsätzlich die LTS Versionen von nodejs, also aktuell 6,8 und (noch nicht zu empfehlen weil einige Adapter Libraries brauchen die noch Probleme machen) 10. Dies wird vom Admin-UI auch geprüft und ggf. eine Meldung angezeigt das eine nicht unterstützte nodejs Version genutzt wird.

        Mehr kann ioBroker nicht tun weil das nodejs ja auf dem Rechner getrennt von ioBroker installiert ist. Da hat iobroker keine Kontrolle.

        Jetzt ist es noch so , dass nodejs 8.x und 10.x eine npm Version mitbringen die grundsätzlich Bugs hat die bei IoBroker zu grossen problemen führen können. Das haben wir auch versucht bei allen Installationsprozessen zu prüfen und zu warnen. Also hier gilt npm 5.0.0 bis 5.7.0 sind böse und kaputt. Alles ab mpm 5.7.1 geht wieder. AUch hier gilt npm existiert getrennt von ioBroker … also kann man nur im Nachhinein prüfen.

        Wenn man die nodejs Version uodatet muss man die Pakete neubauen die ggf. kompilirte Komponenten enthalten - SQL Adapter beispielsweise wegen sqlite für die die das nutzen anstelle einer echten Datenbank.

        Von daher aus meiner Erfahrung:

        • ioBroker stoppen

        • nodejs Version updaten (aktuell wäre 6 oder 8 zu empfehlen). Bei Windows am besten den offiziekllen Installer nehmen

        • npm Version prüfen (cmd -> npm -v) und ggf updaten (npm -g install npm@latest)

        • für WIndows fehlt noch das reinstall.sh, aber es sollte (am besten als Admin) ein Rebuild reichen (cmd -> cd iobroker-Verzeichnis -> npm rebuild)

        • dann starten und alles sollte noch tun

        Wenn nicht - und auch hier vor allem was genau bei sql kaputt geht, am besten posten ... das wäre interessant

        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 last edited by

          @apollon77:

          Bei Windows am besten den offiziekllen Installer nehmen

          • npm Version prüfen (cmd -> npm -v) und ggf updaten (npm -g install npm@latest) `
            Eine globale Version 6.1.0 hilft nicht, denn bei Adapter-Update wird auf die Version 5.6.0, die bei der Installation von nodejs 8 installiert wird, zurückgegriffen mit den entsprechenden Meldungen und Abbruch.

          Ich habe es nach vielen vergeblichen Versuchen so gemacht: nodejs 10.5.0 installiert mit npm 6.1.0 und anschließend die https://nodejs.org/download/release/v8.11.3/win-x64/ ausgetauscht gegen die Version 8.11.3.

          1 Reply Last reply Reply Quote 0
          • apollon77
            apollon77 last edited by

            Heisst das unter WIndows geht ein npm update mit "-g" nicht sodass es auch verwendet wird? Na das ist ja schrott

            1 Reply Last reply Reply Quote 0
            • enzo
              enzo last edited by

              Das kann ich bestätigen.

              1 Reply Last reply Reply Quote 0
              • Q
                Qlink last edited by

                Vielen Dank @apollon und paul !

                Das waren die entscheidenden Hinweise.

                Jetzt hats geklappt!

                Falls sonst noch jemand vor dem Problem steht hier nochmal die Schritte die bei mir zum Erfolg geführt haben:

                ****<size size="150">- ioBroker stoppen

                • nodejs Version updaten (Windows Installer 10.5.0 inkl. npm 6.1.0 von nodejs.org downloaden und installieren)

                • https://nodejs.org/download/release/v8.11.3/win-x64/ austauschen gegen die Version 8.11.3.

                • elevated cmd -> cd iobroker-Verzeichnis -> npm rebuild ausführen

                • iobroker starten</size>****

                Soweit läuft alles bei mir.

                Einzig neue Fehlermeldung seit dem Update ist folgende:

                host.iobroker	2018-06-24 13:51:12.625	error	Caught by controller[0]: Cannot parse "C:\ioBroker\node_modules\iobroker.vis\lib/../../iobroker.vis-plumb/io-package.json": SyntaxError: Unexpected string in JSON at position 318
                

                und der statistics Adapter läuft jetzt nicht mehr, da der aber noch alpha Status ist, denke ich es liegt eher am Adapter …

                host.iobroker	2018-06-24 13:59:06.205	info	Restart adapter system.adapter.statistics.0 because enabled
                host.iobroker	2018-06-24 13:59:06.205	error	instance system.adapter.statistics.0 terminated with code 0 (OK)
                host.iobroker	2018-06-24 13:59:06.205	error	Caught by controller[0]: at tryOnImmediate (timers.js:768:5)
                host.iobroker	2018-06-24 13:59:06.205	error	Caught by controller[0]: at runCallback (timers.js:810:20)
                host.iobroker	2018-06-24 13:59:06.205	error	Caught by controller[0]: at Immediate._onImmediate (C:\ioBroker\node_modules\iobroker.js-controller\lib\adapter.js:3429:38)
                host.iobroker	2018-06-24 13:59:06.205	error	Caught by controller[0]: at Adapter.emit (events.js:214:7)
                host.iobroker	2018-06-24 13:59:06.205	error	Caught by controller[0]: at emitTwo (events.js:126:13)
                host.iobroker	2018-06-24 13:59:06.205	error	Caught by controller[0]: at Adapter. <anonymous>(C:\ioBroker\node_modules\iobroker.statistics\main.js:988:13)
                host.iobroker	2018-06-24 13:59:06.205	error	Caught by controller[0]: at newSumDeltaValue (C:\ioBroker\node_modules\iobroker.statistics\main.js:436:11)
                host.iobroker	2018-06-24 13:59:06.205	error	Caught by controller[0]: at Object.waterfall (C:\ioBroker\node_modules\iobroker.statistics\node_modules\async\dist\async.js:5334:5)
                host.iobroker	2018-06-24 13:59:06.205	error	Caught by controller[0]: at nextTask (C:\ioBroker\node_modules\iobroker.statistics\node_modules\async\dist\async.js:5324:14)
                host.iobroker	2018-06-24 13:59:06.205	error	Caught by controller[0]: at async.waterfall.delta (C:\ioBroker\node_modules\iobroker.statistics\main.js:439:36)
                host.iobroker	2018-06-24 13:59:06.205	error	Caught by controller[0]: TypeError: Cannot read property 'val' of undefined
                statistics.0	2018-06-24 13:59:06.156	debug	stopped yearreset
                statistics.0	2018-06-24 13:59:06.156	debug	stopped quarterreset
                statistics.0	2018-06-24 13:59:06.156	debug	stopped monthreset
                statistics.0	2018-06-24 13:59:06.156	debug	stopped weekreset
                statistics.0	2018-06-24 13:59:06.156	debug	stopped dayreset
                statistics.0	2018-06-24 13:59:06.156	debug	stopped yearsave
                statistics.0	2018-06-24 13:59:06.156	debug	stopped quartersave2
                statistics.0	2018-06-24 13:59:06.156	debug	stopped quartersave1
                statistics.0	2018-06-24 13:59:06.156	debug	stopped monthsave
                statistics.0	2018-06-24 13:59:06.156	debug	stopped weeksave
                statistics.0	2018-06-24 13:59:06.156	debug	stopped daysave
                statistics.0	2018-06-24 13:59:06.156	debug	stopped 5min
                statistics.0	2018-06-24 13:59:06.156	info	cleaned everything up...
                statistics.0	2018-06-24 13:59:06.156	error	TypeError: Cannot read property 'val' of undefined at async.waterfall.delta (C:\ioBroker\node_modules\iobroker.statistics\main.js:439:36) at nextTask (C:\ioBroker\node_modules\iobroker.statist
                statistics.0	2018-06-24 13:59:06.156	error	uncaught exception: Cannot read property 'val' of undefined</anonymous>
                

                Vielen Dank an alle!

                Beste Grüße

                1 Reply Last reply Reply Quote 0
                • apollon77
                  apollon77 last edited by

                  VIS plump: da ist eine Datei kaputt am besten installiert den Adapter nochmal drüber/neu

                  Statistics: ja scheinbar Adapter Fehler. Mach ggf issue auf beim adapter

                  Gesendet vom Handy …

                  1 Reply Last reply Reply Quote 0
                  • J
                    Joker971 last edited by

                    Hi, wo liegt die node.exe normalerweise bei Windows ? Ich finde die garnicht so das ich sie austauschen könnte :roll:

                    So..habe es gefunden. Der ioBroker läuft aber die Adminoberfläche kann ich nach wie vor nicht aufrufen.

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 last edited by

                      @UweRLP:

                      node-v6.14.3-x64.msi gib, werde ich gleich updaten. `
                      Mit nodejs Version 6 gibt es keine Probleme; erst mit den höheren Versionen (8, 10) tauchen Probleme auf.

                      1 Reply Last reply Reply Quote 0
                      • Stabilostick
                        Stabilostick last edited by

                        <u>Mein vorgeschlagener Weg zur NPM-Korrektur bei Node-Version 6-10:</u>

                        • Nodejs in Version 8.11.3 LTS von https://nodejs.org/en/download/ je nach Windows-OS in der 32 oder 64Bit-Variante installieren.

                        • Der in der Node-Installation enthaltene npm-Paketmanager ist veraltet.

                        • Mit npm install -g npm@6 in der Kommandozeile die aktuelle Version 6.3 nachinstallieren.

                        • Aus dem Ordner C:\Program Files\nodejs\node_modules\npm die Datei npmrc sichern. (bei 64bit)

                        • Den Ordner C:\Program Files\nodejs\node_modules\npm löschen oder umbenennen.

                        • Anschließend den Ordner C:\Users\<hier_deine_windows_user_id_einfügen>\AppData\Roaming\npm\node_modules\npm nach C:\Program Files\nodejs\node_modules\npm kopieren und damit das veraltete npm aus der Nodejs-Installation updaten.</hier_deine_windows_user_id_einfügen>

                        • Die gesicherte Datei npmrc wieder in den Ordner C:\Program Files\nodejs\node_modules\npm zurückspielen. Eine vorhandene Datei dabei überschreiben.

                        • Das muss bei jedem Node-Update gemacht werden.

                        1 Reply Last reply Reply Quote 0
                        • B
                          BlueEssi last edited by BlueEssi

                          Ich möchte dieses Thema noch einmal aufgreifen, weil es mich viel Zeit gekostet hat den für mich, aber sicherlich auch für viele andere, richten Weg zum Upgrade von nodejs auf 12.16.3 unter Windows zu finden.
                          Die vorstehede Anleitung enthält die entscheidenen Hinweise, führte mich mich aber nicht (mehr) zum Erfolg.

                          Meine Systemumgebung:
                          Platform: Windows
                          os: win32
                          Architecture: x64
                          js-controller: 3.0.21
                          Installationspfad: C:\iobroker\Instanzname

                          Node.js vorher: v10.17.0
                          NPM (bleibt unverändert): 6.14.4

                          Die ursprüngliche Installtion wurde mithilfe des auf der Homepage befindlichen Windows-Setups durchgeführt.

                          Vor der eigentlichen Installation habe ich unter C:\iobroker\Instanzname den Befehl npm install --global windows-build-tools ausgeführt. Dies wurde ohne Fehlermeldung durchgeführt und schadet bestimmt nicht.

                          Alle folgenden Befehle werden unter C:\iobroker\Instanzname ausgeführt.

                          • Stopp der iobroker-Instanz iobroker stop
                          • Unter Dienste den automatischen Start von iobroker temporör auf manuell stellen, damit er sich nicht nach jedem Reboot startet
                          • Deinstallation der alten Node.js-Installation über die normale Windows-Deinstallation (Programme entfernen) mit anschließendem Reboot (sicher ist sicher)
                          • Löschen des Verzeichnisses C:\Program Files\nodejs, falls noch vorhanden
                          • Node.js node-v12.16.3-x64 von der Homepage runtergeladen und nach Standardvorgaben installiert; Chocolate auch installiert (aber keine Ahnung, ob es benötigt wird); dies installiert die aktuelle Version unter C:\Program Files\nodejs; anschließend sicherheitshalber wieder ein Neustart
                          • Umbenennen des Ordners C:\iobroker\Instanzname\nodejs (z.B. in nodejs_10_17_0)
                          • Kopieren des Ordners C:\Program Files\nodejs nach C:\iobroker\Instanzname\nodejs
                          • jetzt sollte der Befehl node -v schon die aktuelle Verison ausgeben
                          • die Datei nodevars.bat aus dem umbenannten Ordner nodejs_10_17_0 in den neuen nodejs-Ordner kopieren; hierdurch wird die cmd-Box auch weiterhin mit dem richtigen Umgebungsvariablen und im richtigen Ordner gestartet
                          • Die cmd-Box zum Test neustarten
                          • ich habe jetzt noch den Befehlt npm rebuild ausgeführt; ob es notwendig ist weiß ich nicht
                          • den Dienst wieder auf automatisch stellen und mit iobroker start iobroker starten

                          Entscheidend war für mich zu verstehen, dass der iobroker nach Standard-Installation sein nodejs bereits im eigenen Verzeichnis mitbringt und jede Installation einer neuen Version unter Program Files garkeine Veränderung mit sich brachte.
                          Sollte ich bei irgendetwas nicht richtig liegen bitte ich um Korrektur. Alle Tipps natürlich auf eigene Gefahr. Bei mir hat es so funktioniert.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate
                          FAQ Cloud / IOT
                          HowTo: Node.js-Update
                          HowTo: Backup/Restore
                          Downloads
                          BLOG

                          432
                          Online

                          31.8k
                          Users

                          80.0k
                          Topics

                          1.3m
                          Posts

                          7
                          11
                          6904
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo