NEWS
(gelöst) NPM-Modul "node-fetch" in der Javascript-Instanz
-
hab' ich:
root@iobroker-v510:/opt/iobroker# npm ls node-fetch iobroker.inst@2.0.3 /opt/iobroker ├─┬ iobroker.javascript@5.2.8 │ └── node-fetch@3.0.0 deduped └── node-fetch@3.0.0mit v3.x gibt's einige Änderungen: https://github.com/node-fetch/node-fetch/blob/HEAD/docs/v3-UPGRADE-GUIDE.md.
requirefunktioniert offenbar nicht mehr.@ice987 sagte in (gelöst) NPM-Module in der Javascript instanz:
iobroker.inst@2.0.3 /opt/iobroker ├─┬ iobroker.javascript@5.2.8 │ └── node-fetch@3.0.0 deduped └── node-fetch@3.0.0Hast du zufällig
node-fetchmal innerhalb/opt/iobrokerhändisch nachinstalliert?
Das sieht aus, als würde es auch in/opt/iobroker/package.jsonstehen, wo es definitiv nicht hingehört. -
@ice987 sagte in (gelöst) NPM-Module in der Javascript instanz:
iobroker.inst@2.0.3 /opt/iobroker ├─┬ iobroker.javascript@5.2.8 │ └── node-fetch@3.0.0 deduped └── node-fetch@3.0.0Hast du zufällig
node-fetchmal innerhalb/opt/iobrokerhändisch nachinstalliert?
Das sieht aus, als würde es auch in/opt/iobroker/package.jsonstehen, wo es definitiv nicht hingehört.@alcalzone
leider ist das so, ja. -
@alcalzone
leider ist das so, ja. -
@ice987 Dann am besten mal entfernen, das dürfte nämlich die Ursache für solche Probleme sein.
cd /opt/iobroker npm uninstall node-fetchroot@iobroker-v510:/opt/iobroker# cd /opt/iobroker root@iobroker-v510:/opt/iobroker# npm uninstall node-fetch npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) removed 19 packages and audited 1289 packages in 35.686s 102 packages are looking for funding run `npm fund` for details found 64 vulnerabilities (5 low, 21 moderate, 35 high, 3 critical) run `npm audit fix` to fix them, or `npm audit` for details root@iobroker-v510:/opt/iobroker# npm ls node-fetch iobroker.inst@2.0.3 /opt/iobroker └─┬ iobroker.javascript@5.2.8 └── node-fetch@3.0.0die "Zusätzlichen NPM-Module" im Javascript-Adapter wurden vorher entfernt und sind aktuell nicht drin. Ist die Installation so nun in Ordnung?
Das Skript scheint zu funktionieren...
-
root@iobroker-v510:/opt/iobroker# cd /opt/iobroker root@iobroker-v510:/opt/iobroker# npm uninstall node-fetch npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) removed 19 packages and audited 1289 packages in 35.686s 102 packages are looking for funding run `npm fund` for details found 64 vulnerabilities (5 low, 21 moderate, 35 high, 3 critical) run `npm audit fix` to fix them, or `npm audit` for details root@iobroker-v510:/opt/iobroker# npm ls node-fetch iobroker.inst@2.0.3 /opt/iobroker └─┬ iobroker.javascript@5.2.8 └── node-fetch@3.0.0die "Zusätzlichen NPM-Module" im Javascript-Adapter wurden vorher entfernt und sind aktuell nicht drin. Ist die Installation so nun in Ordnung?
Das Skript scheint zu funktionieren...
@ice987 Das sieht besser aus. Wenn du solche Probleme künftig vermeiden willst, am besten noch all die anderen Pakete deinstallieren, die unnötigerweise in
/opt/iobroker/package.jsonstehen. Da sollten ausschließlich dependencies drin sein, die mitiobroker.oder@iobroker/beginnen.Vorsichtshalber mal ein Backup vorher fahren :)
-
@ice987 Das sieht besser aus. Wenn du solche Probleme künftig vermeiden willst, am besten noch all die anderen Pakete deinstallieren, die unnötigerweise in
/opt/iobroker/package.jsonstehen. Da sollten ausschließlich dependencies drin sein, die mitiobroker.oder@iobroker/beginnen.Vorsichtshalber mal ein Backup vorher fahren :)
@alcalzone
wunderbar!hab' gerade gekuckt in
/opt/iobroker/package.json: alles fängt mitiobroker.oder@iobroker/an ausser:"colors": "^1.3.3", "fs-extra": "^7.0.1" "iobroker": "^2.0.3", "semver": "^5.6.0", "yargs": "^7.0.2"alles stehen lassen?
-
@alcalzone
wunderbar!hab' gerade gekuckt in
/opt/iobroker/package.json: alles fängt mitiobroker.oder@iobroker/an ausser:"colors": "^1.3.3", "fs-extra": "^7.0.1" "iobroker": "^2.0.3", "semver": "^5.6.0", "yargs": "^7.0.2"alles stehen lassen?
-
@alcalzone
ok, hab alles gelistete entfernt (ausseriobroker). Nun habe ich aber erneut das Problem mit dem Error:Module sind wie folgt eingetragen:

error wie folgt:
14:52:47.875 error javascript.2 (185) script.js.08_Wetterstation.082_Meteoblue: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../node-fetch'root@iobroker-v510:/opt/iobroker# npm ls node-fetch iobroker.inst@2.0.3 /opt/iobroker └─┬ iobroker.javascript@5.2.8 └── node-fetch@3.0.0 -
@alcalzone
ok, hab alles gelistete entfernt (ausseriobroker). Nun habe ich aber erneut das Problem mit dem Error:Module sind wie folgt eingetragen:

error wie folgt:
14:52:47.875 error javascript.2 (185) script.js.08_Wetterstation.082_Meteoblue: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../node-fetch'root@iobroker-v510:/opt/iobroker# npm ls node-fetch iobroker.inst@2.0.3 /opt/iobroker └─┬ iobroker.javascript@5.2.8 └── node-fetch@3.0.0 -
@alcalzone
ich habe alles hier

entfernt, Instanz neu gestartet, der error bleibt.node-fetchwieder hinzugefügt, Instanz heu gestartet, Fehler bleibt. -
@alcalzone
ok, hab alles gelistete entfernt (ausseriobroker). Nun habe ich aber erneut das Problem mit dem Error:Module sind wie folgt eingetragen:

error wie folgt:
14:52:47.875 error javascript.2 (185) script.js.08_Wetterstation.082_Meteoblue: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../node-fetch'root@iobroker-v510:/opt/iobroker# npm ls node-fetch iobroker.inst@2.0.3 /opt/iobroker └─┬ iobroker.javascript@5.2.8 └── node-fetch@3.0.0 -
aktuell (zu Testzwecken) nur so:
const fetch = require('node-fetch');welches bereits den Fehler ergibt:
-
Dann ist da im Adapter irgendwas faul...
importwird unter der Haube inrequireumgeschrieben, sollte sich also gleich verhalten.@ice987 Probier mal als Workaround:
cd /opt/iobroker/node_modules/iobroker.javascript npm install --production -
@paul53
so hätte ich die Fehlermeldung auch interpretiert. Da hab' ich's manuell probiert, was funktionierte, jedoch nicht der "korrekten Installation" entspricht...cd /opt/iobroker/node_modules/iobroker.javascript npm install --productionhabe ich ausgeführt: fehler bleibt:
Script nur eine Zeile:
const fetch = require('node-fetch');fehler:
15:20:40.276 error javascript.2 (1358) script.js.08_Wetterstation.Skript_1: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../node-fetch'wenns was zur Sache tut: ioBroker läuft auf einem QNAP im Container, unter dem offiziellen Dockerimage von Buanet.
-
Dann ist da im Adapter irgendwas faul...
importwird unter der Haube inrequireumgeschrieben, sollte sich also gleich verhalten.@ice987 Probier mal als Workaround:
cd /opt/iobroker/node_modules/iobroker.javascript npm install --production@alcalzone sagte: Probier mal als Workaround:
cd /opt/iobroker/node_modules/iobroker.javascript npm install --productionDorthin hat es der Javascript-Adapter installiert. Es wird dort aber nicht von require gefunden.
-
Laut https://github.com/ioBroker/ioBroker.javascript/blob/1a05db402d3c5ad83623825734141a22c34e04b9/lib/sandbox.js#L410-L423 sollte zuerst
/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-fetchund anschließend
/opt/iobroker/node_modules/node-fetchversucht werden.
In diesem Fall würde das bedeuten, dassnode-fetchsich weder im Unterordner, noch in der übergeordneten Struktur befindet.@ice987
Was kommt hier raus?cd /opt/iobroker find -iname node-fetch -
Laut https://github.com/ioBroker/ioBroker.javascript/blob/1a05db402d3c5ad83623825734141a22c34e04b9/lib/sandbox.js#L410-L423 sollte zuerst
/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-fetchund anschließend
/opt/iobroker/node_modules/node-fetchversucht werden.
In diesem Fall würde das bedeuten, dassnode-fetchsich weder im Unterordner, noch in der übergeordneten Struktur befindet.@ice987
Was kommt hier raus?cd /opt/iobroker find -iname node-fetchconst fetch = require('iobroker.javascript/node_modules/node-fetch');ergibt
Error [ERR_REQUIRE_ESM] [ERR_REQUIRE_ESM]: Must use import to load ES Module: /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-fetch/src/index.js -
const fetch = require('iobroker.javascript/node_modules/node-fetch');ergibt
Error [ERR_REQUIRE_ESM] [ERR_REQUIRE_ESM]: Must use import to load ES Module: /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-fetch/src/index.js@paul53 Ahhhh, klick!
d.h. in
/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-fetchist das Modul zu finden, aber in einer Version, die der Adapter nicht laden kann.
Dann probiert er/opt/iobroker/node_modules/node-fetch, wo es nicht ist. -
@ice987 Probier mal folgendes:
- Adapter stoppen,
node-fetchaus der Adapter-Konfig entfernen.
cd /opt/iobroker/node_modules/iobroker.javascript npm uninstall node-fetch- In der Adapterkonfiguration
node-fetch@2eintragen und Adapter starten.
- Adapter stoppen,
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden