Node v16.x und npm: TypeError bei Plugin De-/Installation/Update

  • Bekomme oben genannt Fehlermeldung beim Versuch das Hue Plugin Upzudaten bzw. eine Aqara Plugin zu deinstallieren.

    Any idea? Wo kann ich die log datei finden?

    Gruß forester

  • Gib das Kommando mal so wie es dort steht auf der Kommandozeile ein.

  • Es sieht aus, als sein der Plugin-Installer npm verantwortlich. Welche Node-Version verwendest du und welche npm-Version?


    Mit node -v und npm -v findest du das heraus.


  • Hallo Erleuchter :)

    NPM Version 8.1.0 -> ok?

    Danke schonmal für Deinen Support.

    Gruß forester

    Einmal editiert, zuletzt von Spy () aus folgendem Grund: Ein Beitrag von forester08 mit diesem Beitrag zusammengefügt.

  • Das sieht aus wie bei mir. Vielleicht hilft es, den npm-Cache zu löschen. Auf den Raspi per ssh einloggen und dann:


    rm -rf .npm

    sudo rm -rf /root/.npm

  • Hallo,


    ich habe Probleme ein Plugin zu upgraden oder zu deinstallieren.


    Immer wenn ich es versuche bekomme ich die Fehlermeldung


    TypeError: Class extends value undefined is not a constructor or null

    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/socks-proxy-agent/dist/agent.js:114:44)

    at Module._compile (node:internal/modules/cjs/loader:1101:14)

    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)

    at Module.load (node:internal/modules/cjs/loader:981:32)

    at Function.Module._load (node:internal/modules/cjs/loader:822:12)

    at Module.require (node:internal/modules/cjs/loader:1005:19)

    at require (node:internal/modules/cjs/helpers:102:18)

    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/socks-proxy-agent/dist/index.js:5:33)

    at Module._compile (node:internal/modules/cjs/loader:1101:14)

    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)

    at Module.load (node:internal/modules/cjs/loader:981:32)

    at Function.Module._load (node:internal/modules/cjs/loader:822:12)

    at Module.require (node:internal/modules/cjs/loader:1005:19)

    at require (node:internal/modules/cjs/helpers:102:18)

    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/make-fetch-happen/lib/agent.js:161:25)

    at Module._compile (node:internal/modules/cjs/loader:1101:14)


    Dann habe ich mit

    sudo apt-get update

    sudo apt-get upgrade

    sudo hb-service update-node


    alles aktualisiert. Lief auch durch.


    Dennoch bleibt die Fehlermeldung.


    Dann

    sudo npm uninstall homebridge-dummy-contact -g (um genau das Plugins geht es)

    auch keine Lösung


    AKtuell habe ich

    Homebridge 1.3.5

    Node 16.13.0

    NPM 8.1.0


    Irgendwie scheint npm zu spinnen. das kann ich gar nicht verändern.


    sudo npm install -g --unsafe-perm n

    bringt dieselbe Fehlermeldung


    Was kann ich machen?


    Danke für Hilfe

  • Hallo CuriousGerman , nicht wundern, ich habe deinen Beitrag hierhin verschoben, nachdem hier jemand das gleiche Problem hat und hier bereits versucht wird eine Lösung zu finden.

  • ok, wenn ich npm -v mache, dann kommt die gleiche Fehlermeldung

    rm -rf .npm

    sudo rm -rf /root/.npm

    über die Konsole ausgeführt, läuft durch, aber Fehlermeldung bei Plugin Handling bleibt

    Alles was ich mit Plugins noch machen kann ist deaktivieren und EInstellungen verändern.

    Keine Installation, kein Update, keine Deinstallation.

    Auch Anfragen gegen npm gehen nicht mehr.

    Gibt es irgendwo eine Log Datei, die man befragen kann?

  • Was ich hier: https://github.com/homebridge/homebridge/issues/3002 so rauslese, liegt es wohl irgendwie an Node 16.13.0 und ein downgrade auf 14.18.1 hat bei vielen dort geholfen(Wohl auch bei SeydX ). Anleitung gibt es hier: https://github.com/homebridge/…02#issuecomment-955994607

  • Patrick_

    Hat den Titel des Themas von „Command failed. Please review log for details“ zu „Node v16.x und npm: TypeError bei Plugin De-/Installation/Update“ geändert.
  • in welchem Verzeichnis sollte man die Sudo Kommandos ausführen?

    Root oder Installationsverzeichnis der Homebridge?

    Darüber wird in dem Gitgub Verzeichnis diskutiert.


    ok, der Github Artikel hat geholfen

    Folgendes gemacht:

    im Root Verzeichnis

    Code
    sudo hb-service update-node 14.18.1
    sudo npm i -g npm
    sudo hb-service update-node 16.13.0
    sudo npm i -g npm


    Es kam dann zwar noch eine Fehlermeldung:


    Aber das Update des Plugins lief dann durch

    und auch npm -v funktioniert wieder.


    und jetzt kam noch 1.3.6 von Homebridge hinterher.

    Läuft auch


    OK leider noch nicht zu Ende

    Jetzt bekomme ich Fehlermeldungen.


    Code
    [10/11/2021, 14:00:35] [Homebridge UI] Failed to search the npm registry - "timeout of 5000ms exceeded" - see https://git.io/JJSz6 for help.


    Igendwie habe ich jetzt mehrere Instanzen von Homebridge.

    Hätte ich die Sudo Kommandos nicht in der Root ausführen dürfen?



    irgendwie scheint sich npm jetzt gar nicht mehr auszukennen.


    Kommentar: Da hat nur die Registry gesponnen. Ist jetzt wieder weg.

    4 Mal editiert, zuletzt von CuriousGerman () aus folgendem Grund: Ein Beitrag von CuriousGerman mit diesem Beitrag zusammengefügt.

  • hellooo


    also ich hab mich mal gewagt und das node update gemacht...soweit so gut...läuft noch alles.

    wenn ich jetzt aber noch homebridge und hur updaten will, bekomme ich folgenden fehler:


    dann hab ich mal geschau, ob das geklappt hab, mit der version und mit node -v wird mir 16 angezeigt. wenn ich jetzt aber über sudo n schaue, wird mir noch 14 angezeigt.

    das versteh ich jetz nich :/


    hab auch schon den ganzen pi neu gestartet aber hilft alles nichts.


    weis jemand rat? :/

  • Morvan ich habe deinen Beitrag hierhin verschoben. Bitte die oberen Lösungsvorschläge probieren.

  • npm test

    Wahrscheinlich npm -g test.

  • Was ich hier: https://github.com/homebridge/homebridge/issues/3002 so rauslese, liegt es wohl irgendwie an Node 16.13.0 und ein downgrade auf 14.18.1 hat bei vielen dort geholfen(Wohl auch bei SeydX ). Anleitung gibt es hier: https://github.com/homebridge/…02#issuecomment-955994607

    Danke, Downgrade war die Lösung. Jetzt läuft wieder alles .Gruß forester


    Code
    sudo hb-service update-node 14.18.1
  • Heute wollte ich beim Plugin Homebridge Dyson Pure Cool die neu verfügbare Version installieren. Unter 16.13.0 lief das Update mit ähnlichen Fehlermeldungen schief. (Leider nicht kopiert) Ich musste zuerst wieder zurück auf 14.18.1, dann das Update durchführen und dann wieder zurück zu 16.13.0. Anstrengend. Ich hoffe das wird bald fixiert. Leider schimpfen unter 14.18.1 andere Plug-Ins von mir, wegen überalterter Node.


    npm - g test

    liefert unter node 16.3.0 immer noch:


    npm ERR! code ENOENT

    npm ERR! syscall open

    npm ERR! path //package.json

    npm ERR! errno -2

    npm ERR! enoent ENOENT: no such file or directory, open '//package.json'

    npm ERR! enoent This is related to npm not being able to find a file.

    npm ERR! enoent


    npm ERR! A complete log of this run can be found in:

    npm ERR! /home/pi/.npm/_logs/2021-11-15T21_52_01_251Z-debug.log


    Und im Log File steht:


    0 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', '-g', 'test' ]

    1 info using [email protected]

    2 info using [email protected]

    3 timing npm:load:whichnode Completed in 0ms

    4 timing config:load:defaults Completed in 5ms

    5 timing config:load:file:/usr/local/lib/node_modules/npm/npmrc Completed in 4ms

    6 timing config:load:builtin Completed in 4ms

    7 timing config:load:cli Completed in 6ms

    8 timing config:load:env Completed in 1ms

    9 timing config:load:project Completed in 2ms

    10 timing config:load:file:/home/pi/.npmrc Completed in 0ms

    11 timing config:load:user Completed in 0ms

    12 timing config:load:file:/usr/local/etc/npmrc Completed in 0ms

    13 timing config:load:global Completed in 0ms

    14 timing config:load:validate Completed in 1ms

    15 timing config:load:credentials Completed in 3ms

    16 timing config:load:setEnvs Completed in 3ms

    17 timing config:load Completed in 26ms

    18 timing npm:load:configload Completed in 26ms

    19 timing npm:load:setTitle Completed in 0ms

    20 timing npm:load:setupLog Completed in 2ms

    21 timing config:load:flatten Completed in 9ms

    22 timing npm:load:cleanupLog Completed in 5ms

    23 timing npm:load:configScope Completed in 0ms

    24 timing npm:load:projectScope Completed in 1ms

    25 timing npm:load Completed in 48ms

    26 timing command:run-script Completed in 5ms

    27 timing command:test Completed in 14ms

    28 verbose stack Error: ENOENT: no such file or directory, open '/home/pi/package.json'

    29 verbose cwd /home/pi

    30 verbose Linux 5.10.63-v7l+

    31 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "-g" "test"

    32 verbose node v16.13.0

    33 verbose npm v8.1.0

    34 error code ENOENT

    35 error syscall open

    36 error path /home/pi/package.json

    37 error errno -2

    38 error enoent ENOENT: no such file or directory, open '/home/pi/package.json'

    39 error enoent This is related to npm not being able to find a file.

    40 verbose exit -2


    Was geht schief?

    2 Mal editiert, zuletzt von Spy () aus folgendem Grund: Ein Beitrag von CuriousGerman mit diesem Beitrag zusammengefügt.

  • Hallo Community


    Ich wollte heute das Update auf Homebridge 1.3.6 aufspielen. Jedoch kommt folgende Fehlermeldung und ich weiss nicht, woran das liegen könnte.

    (PS: Auch das HUE-Plugin zeigt mir ein Update an, aber auch da kommt in etwa diesselbe Fehlermeldung!)


    Kann mir da jemand weiterhelfen?


    Meine Homebridge läuft auf einem Raspi. Sagt mir, wenn ihr noch weiter Angaben benötigt.

  • und ich weiss nicht, woran das liegen könnte.

    Ich schon, deswegen hab ich deinen Beitrag hierhin verschoben ;)


    Bitte mal das hier versuchen: https://github.com/homebridge/…02#issuecomment-955994607

  • Echt hammergeil. Antwort innert Minuten, top präzise und Problem gelöst.

    Danke Patrick_ :thumbup:

    • Hilfreich

    Es besteht aktuell ein Problem mit einer alten npm Version, die unter der neuen NodeJS Version 16 zu Fehlermeldungen führt, die mit

    Code
    TypeError: Class extends value undefined is not a constructor or null

    beginnen.


    Das Problem ist bereits bei Homebridge bekannt https://github.com/homebridge/homebridge/issues/3002 und betrifft sowohl das Updaten von Homebridge selber als auch durch die Bank das Updaten, die Installation und Deinstallation sämtlicher Homebridge-Plugins.


    Ein Workaround, der bei den meisten geholfen hat ist hier beschreiben: https://github.com/homebridge/…02#issuecomment-955994607


    Folgende Schritte sind demnach für diejenigen, die hb-service verwenden durchzuführen:


    1. Downgrade auf node 14.18.1

    sudo hb-service update-node 14.18.1


    2. Update npm auf die latest version 8

    sudo npm i -g npm


    3. Update node auf 16.13.0

    sudo hb-service update-node 16.13.0


    4. Re-update npm auf die latest Version 8

    sudo npm i -g npm