NEWS
(gelöst) NPM-Modul "node-fetch" in der Javascript-Instanz
- 
					
					
					
					
 ich möchte eine API-Abfrage mit folgendem Befehl durchführen: const fetch = require('node-fetch');im der javascript-Instanz habe ich unter Zusätzliche NPM-Moduledas Modulnode-fetcheingetragen. Beim Start des Skriptes erhalte ich folgende Meldung:javascript.2 (14923) script.js.08_Wetterstation.Skript_1: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../node-fetch'muss noch ein weiteres Modul eingetragen werden? Vielen Dank für eure Hilfe, Versionen: 
 admin: v5.1.23 / v5.1.25
 javascript: v5.2.8
 js-controller: v3.3.15
 node.js: v12.22.6
 NPM: v6.14.15
 Official Docker Image for ioBroker v5.1.0
- 
					
					
					
					
 @ice987 sagte: Error: Cannot find module Diese Meldung vom Editor kann man ignorieren. 
 Wenn node-fetch in der Konfiguration auch noch in der Zeile darunter eingetragen wird, sollte die Meldung verschwinden. 
- 
					
					
					
					
 
- 
					
					
					
					
 @paul53 
 Module sind wie folgt eingetragen:
  kompletter Fehler wie folgt: 11:28:54.183 info javascript.2 (855) Stop script script.js.08_Wetterstation.Skript_1 11:28:54.182 info javascript.1 (178) Stop script script.js.08_Wetterstation.Skript_1 11:28:54.217 info javascript.0 (171) Stop script script.js.08_Wetterstation.Skript_1 11:28:54.295 info javascript.2 (855) Start javascript script.js.08_Wetterstation.Skript_1 11:28:54.304 error javascript.2 (855) script.js.08_Wetterstation.Skript_1: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../node-fetch' 11:28:54.305 error javascript.2 (855) at script.js.08_Wetterstation.Skript_1:1:15 11:28:54.306 error javascript.2 (855) at script.js.08_Wetterstation.Skript_1:2:3 11:28:54.306 info javascript.2 (855) script.js.08_Wetterstation.Skript_1: registered 0 subscriptions and 0 schedulesich versuche mal ob's trotzdem funktioniert cd /opt/iobroker npm ls node-fetchgibt: root@iobroker-v510:/opt/iobroker# cd /opt/iobroker root@iobroker-v510:/opt/iobroker# npm ls node-fetch iobroker.inst@2.0.3 /opt/iobroker └─┬ iobroker.javascript@5.2.8 └── UNMET DEPENDENCY node-fetch@^3.0.0 npm ERR! missing: node-fetch@^3.0.0, required by iobroker.javascript@5.2.8 root@iobroker-v510:/opt/iobroker#
- 
					
					
					
					
 @ice987 sagte: npm ERR! missing: node-fetch@^3.0.0, required by iobroker.javascript@5.2.8Dann wurde es offenbar nicht installiert: Noch mal versuchen und die Log-Ausgabe beobachten. Du solltest nicht als root unterwegs sein. 
- 
					
					
					
					
 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: hab' ich: Ich meinte: Aus der Konfiguration löschen, speichern und wieder eintragen - also noch mal die Installation versuchen. @ice987 sagte in NPM-Module in der Javascript instanz: require funktioniert offenbar nicht mehr. Ich binde alle Module mit require ein. 
- 
					
					
					
					
 
- 
					
					
					
					
 @ice987 
 Gerade bei mir getestet:
 node-fetch wurde unter /opt/iobroker/node_modules/iobroker.javascript/node_modules installiert, require will aber unter /opt/iobroker/node_modules darauf zugreifen, wo es nicht installiert ist.
- 
					
					
					
					
 @paul53 sagte in NPM-Module in der Javascript instanz: Ich meinte: Aus der Konfiguration löschen, speichern und wieder eintragen - also noch mal die Installation versuchen. nun funktioniert es! Vielen Dank! 
- 
					
					
					
					
 @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.
- 
					
					
					
					
 @ice987 Dann am besten mal entfernen, das dürfte nämlich die Ursache für solche Probleme sein. cd /opt/iobroker npm uninstall node-fetch
- 
					
					
					
					
 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  
- 
					
					
					
					
 @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? 
- 
					
					
					
					
 @ice987 iobrokerdrin lassen. Der Rest dürfte raus können.
- 
					
					
					
					
 @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
- 
					
					
					
					
 @ice987 entferne es mal, starte den Adapter neu, dann füge es wieder hinzu. 
- 
					
					
					
					
 @alcalzone 
 ich habe alles hier
  
 entfernt, Instanz neu gestartet, der error bleibt.node-fetchwieder hinzugefügt, Instanz heu gestartet, Fehler bleibt.
 
		
	 
		
	 
			
		 
			
		