NEWS
UNSOLVED Adapter-Update führt zu Neukompilieren des NPM-Moduls
-
Ich habe beim JavaScript-Adapter für das Status-Auslesen der Xiamoi-Geräte das NPM-Modul "node-mihome" eingetragen. Das Script und das NPM-Modul laufen auch super.
Das Script kommt von @Pittini : Siehe https://github.com/Pittini/iobroker-nodemihomeWenn ich nun ein Adapter-Update (egal welches) durchführe,
ist der komplette node-mihome Ordner im Link genannten Verzeichnis komplett gelöscht.Dann muss ich den JavaScript-Adapter neustarten, was das rebuild des node-mihome anstößt.
Ist das so gewollt? Ist das ein Bug des aktuell nicht mehr gewarteten npm-moduls oder vom Javascript-Adapters?Repo: stable - uptodate
JavaScript-Adapter: 7.8.0
Admin: 6.13.16
Node.js: v18.19.1
NPM: 10.2.4 -
Sowas (ähnliches?) hab ich bei mir auch. Ein zusätzliches Modul wird immer mal wieder rausgekickt, wenn Adapter aktualisiert werden. Ein Neustart des javascript-Adapters baut das Modul dann neu. Hab noch nicht herausgefunden, wie man das abstellt.
-
@thomas-braun Hi Thomas, welches Modul ist es bei dir?
Ich würde nur gern ausschließen, dass es ein Problem des NPM-Moduls ist.
Scheinbar ist es also auch nicht ein Problem meiner Installation.Vielleicht können andere User auch mal ergänzen, wo das ggf. auch noch auftritt und mit welchem NPM-Modul.
Danke im Voraus.
-
Bei mir ist es das Modul
playactor
. -
@thomas-braun verrückt, was es alles für Module gibt.
Gibt es da eine Übersicht, bzw. Verwendungsbeispiele oder Scripts?Wie kann man das Modul playactor verwenden.
Ist das evtl. der gleiche Bug wie das GitHub-Issue?
https://github.com/ioBroker/ioBroker.javascript/issues/1146 -
Ja, das ist bei mir das einzige Modul, das zusätzlich eingetragen wurde.
-
Eine reine Hypothese - aber ev. kann @haus-automatisierung da was dazu sagen (und wenn's nur "Blödsinn was du quuatschst" ist)
Das zusätzliche Modul wird ja im Javascript Adapter eingetragen und daher von diesem installiert.
Das zusätzliche Modul wird aber (natürlich) von niemand in package.json des javascrip Adapter eingetragen.
Wenn nun etwas installiert wird kann es durchaus sein, dass ioBroker oder npm scannt welche Module nun aktuell benötigt werden - basierend auf den package.jsons. Und da das Modul xyz nirgends eingetragen ist, wird es gekickt.Ob das nun eine Sache ist die im Javascriktadapter oder im js-controller oder gar nicht zu behebn ist kann ich nicht beuteilen. Ev. kann ja klein0r was dazu sagen.
-
@mcm57 sagte in Adapter-Update führt zu Neukompilieren des NPM-Moduls:
Wenn nun etwas installiert wird kann es durchaus sein, dass ioBroker oder npm scannt welche Module nun aktuell benötigt werden - basierend auf den package.json
Könnte sein. Wäre spannend, seit wann das auftritt. Also ist npm selbst, der js-controller (5.x?) oder der javascript Adapter dafür verantwortlich.
Ist jetzt natürlich recht komplex alle möglichen Kombinationen zu testen und die Ursache zu finden.
-
@haus-automatisierung
Ob iobroker / js-controller beteiligt ist könnte man checken indem man einen Adapter x einmal via js-congroller (cli) katualisiert und einmal direct via npm i ... Außerdem könnte @foxriver76 wissen ob der js-controller (iob cli) irgendeine Art von Cleanup / Remove unused implementiert hat.Weiß viele könnte ....
Aber vielleicht liest hier ja ein Tester mit der durch experimentieren mal feststellen kann WANN das Entfernen stattfinden und wann ev. nicht.
-
@haus-automatisierung sagte in Adapter-Update führt zu Neukompilieren des NPM-Moduls:
Wäre spannend, seit wann das auftritt.
Bei mir mindestens seit Januar 2023, vermutlich aber auch schon geraume Zeit zuvor.
Irgendwann wurde npm dahingehend umgestellt, das es automatisch die Installationsverzeichnisse in regelmäßigen Abständen prunet, wohl auch bei Adapter-Updates und Neuinstallationen.Könnte es das sein?
https://npmdoc.github.io/node-npmdoc-npm/build/apidoc.html#apidoc.element.npm.prune.Pruner
-
Lkonnte ich in letzter Zeit auch wieder bei jedem Update beobachten dass die von mir im JavaScript Adapter hinzugefügten Module nach jedem Update durch npm gelöscht wurden. Wir haben ein Ticket wird allerdings was größeres vermute ich. https://github.com/ioBroker/ioBroker.js-controller/issues/2006