ioBroker / ioBroker.javascript

Script engine for JavaScript and Blockly
MIT License
324 stars 119 forks source link

/opt/iobroker/node_modules/iobroker.javascript/node_modules/ ist leer #1146

Open MarkSau opened 1 year ago

MarkSau commented 1 year ago

Hi.. Es ist mir aufgefallen, weil eines meiner Scripte das Modul "image-downloader" nicht mehr findet. Jetzt habe ich die Ursache: Das Verzeichniss /opt/iobroker/node_modules/iobroker.javascript/node_modules ist fast leer. Alle Module sind verschwunden!?

image

Nach einem Neustart des javascript Adapters sieht es dann so aus:

image und viel mehr

Hier der Log des Restarts. iobroker.log

Diginix commented 1 year ago

Hm, ok. Störende Effekte hatte ich ja selbst nie, konnte nur das (Fehl)Verhalten der verschwindenden Ordner unterhalb /opt/iobroker/node_modules/iobroker.javascript/node_modules/ reproduzieren. Ich halte erstmal die Füße still. ;-)

MarkSau commented 1 year ago

Hallo zusammen.. Das löschen der verschiedenen json files nutzt nix. Das Verhalten bleibt gleich. Nochmal zusammen gefasst:

Es kann sein, das dies kein eigentliches Problem des Javascript Adpaters ist, hier aber auffällt, das was fehlt. Möglicherweise ist NPM bzw. der Auffruf von iobroker , das Problem.

Dies kann, wie ich ja beschrieben habe, auch mit einen "einfachen" Test-Neuinstallation, nachvollzogen werden.

MarkSau commented 1 year ago

Hi,

mich hat leider eine Grippe erwischt und somit konnte ich es nicht konkret testen. Scheinbar hat sich durch die Löschung der /opt/iobroker/node_modules/.package-lock.json /opt/iobroker/node_modules/iobroker.javascript/node_modules/.package-lock.json /opt/iobroker/package-lock.json das Problem erledigt. Zusätzlich hatte ich noch einen "iob rebuild" gemacht. Ich habe heute ein paar Adapter upgedatet und NPM hat dabei keine Pakete mehr gelöscht. Auch nicht welche aus den anderen Verzeichnissen.

Allerding ist es weiterhin seltsam, das dies trotz Neuinstallation passiert. Ich werde das nochmal nachspielen.

Vielen Dank für eure Mühe

MarkSau commented 1 year ago

Ich habe nochmals eine kleine Testinstallation gemacht. Nachdem die fertig war, den javascript adapter hinzugefügt und ein NPM Modul dort hinzugefügt(für meine Sichtbarkeit) 97 Folder danach.. Danach eine beliebigen Adapter installiert... Prompt waren die Folder incl. Image-downloader weg (nur noch 9 Folder) Also Fehler reprodzierbar. Danach die o.g. drei Files gelöscht. iob rebuild (jetzt sind >620 Folder in /opt/iobroker/node_modules/iobroker.javascript/node_modules) und von den drei lock.json nur noch eine da. Noch einen neuen Adapter hinzugefügt (Folder reduziert sich wieder auf 97, aber image-download ist nocht da).

Irgendwas läuft also bei der Installation wohl schon schief...

Grothesk242 commented 1 year ago

Ich hänge mich mal ran, gleiches Problem hier auch. Zusätzliche Module im javascript-Adapter fallen bei Aktionen per npm raus. Es wird seit einiger Zeit automatisch von npm geprunt. Ich habe noch nicht heraus gefunden ob und wie man dem das ggf. abgewöhnen kann oder ob die Zusatzmodule 'prune-resistent' anders angelegt werden müssen.

Apollon77 commented 1 year ago

Hast du mal die Dinge versucht die oben teilweise zu Erfolg geführt haben?

Grothesk242 commented 1 year ago

Natürlich. War aber immer nur von kurzer Dauer. Irgendwann ist das Modul wieder weggeprunt worden.

Ingo Fischer @.***> schrieb am So., 2. Apr. 2023, 12:37:

Hast du mal die Dinge versucht die oben teilweise zu Erfolg geführt haben?

— Reply to this email directly, view it on GitHub https://github.com/ioBroker/ioBroker.javascript/issues/1146#issuecomment-1493293634, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANVE56OLZ3U3TESU2NDY6WDW7FJF5ANCNFSM6AAAAAAQQX5WKQ . You are receiving this because you commented.Message ID: @.***>

Grothesk242 commented 1 year ago

Ich hab es jetzt mit einem

find "/opt/iobroker/" -iname "*package-lock*" -exec rm -rf "{}" \;

gelöst. Seither bleiben zusätzliche Module erhalten. Die Dateien /opt/iobroker/node_modules/.package-lock.json /opt/iobroker/package-lock.json werden aber wiederhergestellt, das ist richtig so. Ich vermute, da stand in den anderen package-lock widersprüchliches drin.