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

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • 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.
    • 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

                        713
                        Online

                        32.0k
                        Users

                        80.5k
                        Topics

                        1.3m
                        Posts

                        7
                        11
                        7094
                        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