NEWS
Installation "request-promise" Modul schlägt fehl
-
Hallo zusammen,
ich versuche gerade das Skript von Volker für die Wärmepumpe ( https://github.com/volkerrichert/ioBroker.ecotouch ) zum Laufen zu bekommen, scheitere jedoch an Zeile 13 des Skriptes.
var rp = require("request-promise").defaults({jar: true});
Ich habe das "request-promise" Modul als zusätzliches NPM-Modul in der Javascript-Instanz mit angegeben, was jedoch zu folgendem Fehler führt:
Der Inhalt des Debug-Logs sieht dann so aus:
0 info it worked if it ends with ok 1 verbose cli [ '/usr/bin/node', 1 verbose cli '/usr/bin/npm', 1 verbose cli 'install', 1 verbose cli 'request-promise', 1 verbose cli '--production', 1 verbose cli '--prefix', 1 verbose cli '/opt/iobroker/node_modules/iobroker.javascript' ] 2 info using npm@6.4.1 3 info using node@v8.12.0 4 verbose npm-session 9f52b3c422c1c9b5 5 silly install loadCurrentTree 6 silly install readLocalPackageData 7 silly fetchPackageMetaData error for request-promise@file:node_modules/request-promise Could not install from "node_modules/request-promise" as it does not contain a package.json file. 8 timing stage:rollbackFailedOptional Completed in 1ms 9 timing stage:runTopLevelLifecycles Completed in 1066ms 10 verbose stack Error: ENOENT: no such file or directory, open '/opt/node_modules/request-promise/package.json' 11 verbose cwd /opt 12 verbose Linux 3.10.0-862.11.6.el7.x86_64 13 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "request-promise" "--production" "--prefix" "/opt/iobroker/node_modules/iobroker.javascript" 14 verbose node v8.12.0 15 verbose npm v6.4.1 16 error code ENOLOCAL 17 error Could not install from "node_modules/request-promise" as it does not contain a package.json file. 18 verbose exit [ 1, true ]
Über einen Tipp, wie ich das Thema lösen kann, wäre ich dankbar
Danke
oetti -
@oetti das sind nicht die Droiden die ihr sucht. Das Modul heißt
request-promise-native
bzwrequest-promise-any
Edit: request-promise gibts wohl auch ist allerdings nicht mehr state-of-the-art
-
@oetti sagte:
"request-promise" Modul als zusätzliches NPM-Modul in der Javascript-Instanz mit angegeben, was jedoch zu folgendem Fehler führt:
Bei mir wird das Modul installiert und es gibt nur eine Fehlermeldung bzgl. Abhängigkeit.
javascript.1 2019-12-10 18:57:56.115 info added 8 packages from 13 contributors and audited 32 packages in 2.28s javascript.1 2019-12-10 18:57:56.115 info (6574) + request-promise@4.2.5 javascript.1 2019-12-10 18:57:56.113 error npm WARN request-promise-core@1.1.3 requires a peer of request@^2.34 but none is installed. You must install peer dependencies yourself. javascript.1 2019-12-10 18:57:56.113 error (6574) WARN request-promise@4.2.5 requires a peer of request@^2.34 but none is installed. You must install peer dependencies yourself. javascript.1 2019-12-10 18:57:56.113 error (6574) npm javascript.1 2019-12-10 18:57:53.200 info (6574) npm install request-promise --production --prefix "/opt/iobroker/node_modules/iobroker.javascript" (System call)
node.js 8.16.2, npm 6.4.1, js 4.3.4
-
@oetti Sieht eher nach einem anderen Fehler aus, da er die package.json im im heruntergeladenem Modul nicht finden kann. Bei mir installiert er es testweise auch problemlos.
Mal das Modul via Terminal installieren:
npm i request-promise --production --prefix /opt/iobroker/node_modules/iobroker.javascript
-
Also, "request-promise-native" bzw. "request-promise-any" werden problemlos installiert, das Skript läuft jedoch trotzdem nicht.
@foxriver76
Den Hinweis mit den Droiden habe ich noch nicht
Die Installation via Terminal probiere ich gleich.Danke schon mal euch beiden
oetti
-
@oetti Müsstest die Zeile 13 mindestens durch
var rp = require("request-promise-native").defaults({jar: true});
ersetzen, ob das jetzt andere Nebenwirkungen hat, kann ich dir ad-hoc nicht sagen - vermute jedoch nicht. -
@foxriver76 sagte in Installation "request-promise" Modul schlägt fehl:
npm i request-promise --production --prefix /opt/iobroker/node_modules/iobroker.javascript
Gleiches Problem.
npm i request-promise --production --prefix /opt/iobroker/node_modules/iobroker.javascript npm ERR! code ENOLOCAL npm ERR! Could not install from "node_modules/request-promise" as it does not contain a package.json file.
Kann das ein Thema der node bzw. npm-Version sein?
-
Hatte ich gemacht. Sowohl '-native' als auch '-any' ergänzt.
-
@oetti Eigentlich ist es eine
npm
Gechichte, jedoch hat @paul53 auch 6.4.1.Wundert mich auch, dass
request-promise-native
problemlos installiert wird und das andere Modul nicht. Ansonsten hätte ich mir noch eine Rechte-Geschichte vorstellen können - hast du schon mal den Fixer genutzt bzw. eine relativ neue Installation?
Was kommt für eine Fehlermeldung im Skript wenn durequest-promise-native
verwendest? -
@foxriver76 sagte in Installation "request-promise" Modul schlägt fehl:
@oetti Eigentlich ist es eine
npm
Gechichte, jedoch hat @paul53 auch 6.4.1.Wundert mich auch, dass
request-promise-native
problemlos installiert wird und das andere Modul nicht. Ansonsten hätte ich mir noch eine Rechte-Geschichte vorstellen können - hast du schon mal den Fixer genutzt bzw. eine relativ neue Installation?
Was kommt für eine Fehlermeldung im Skript wenn durequest-promise-native
verwendest?Leider nicht viel, der Skript-Editor ist der Meinung, dass auch dieses Modul nicht existiert.
-
@oetti sagte:
der Skript-Editor ist der Meinung, dass auch dieses Modul nicht existiert.
Das sollte man ignorieren. Dieser Meinung ist der Editor bei allen Modulen.
-
Äähm, ich habe das komplette Skript gelöscht und noch einmal direkt aus dem Git kopiert.
Die Zeile 13 auf '-native' angepasst - jetzt läuft es.Keine Ahnung, was jetzt anders ist, aber "works for me"
Danke euch beiden
oetti -
@oetti Der Fehler "could not install from node_modules/..." deutet für mich darauf hin, dass die Pakete irgendwie per symlink oder wie auch immer auf den lokalen Pfad umgebogen wurden. Hast du irgendwas mit
npm link
gefummelt? -
@paul53 Verschwindet der Fehler, wenn man die Syntaxhilfe für das Modul aktiviert? Oder ist die Version mit dem Feature noch gar nicht draußen?
-
-
@paul53 In den Adapter-Optionen:
https://github.com/ioBroker/ioBroker.javascript/pull/439Aber ich schätze, die Version ist noch nicht raus, da auch die Meldung über fehlende Module behoben sein müsste.
-
@AlCalzone sagte in Installation "request-promise" Modul schlägt fehl:
@oetti Der Fehler "could not install from node_modules/..." deutet für mich darauf hin, dass die Pakete irgendwie per symlink oder wie auch immer auf den lokalen Pfad umgebogen wurden. Hast du irgendwas mit
npm link
gefummelt?Mit npm link hatte ich nicht rumgefummelt (kannte ich bis eben auch noch nicht).
Was ich gesehen hatte war, dass während der Installation ein Symlink auf sich selbst im Ordner iobroker.javascript angelegt wurde. Den habe ich dann mit "rm" ins Nirvana befördert. -
Ich muss meinen Thread nochmal wiederbeleben, da mir das besagte Modul weiterhin Problem bereitet.
Aktuell ist es so, dass jede neue Installation eines Adapters fehlschlägt, da npm weiterhin versucht das "request-promise" Modul zu installieren.
Deshalb die Frage, ob npm eine List vorhält, mit Modulen die noch installiert werden müssen. Aktuell mal das Debug-Log, als ich versucht habe, den nanoleaf-Adapter zu installieren:0 info it worked if it ends with ok 1 verbose cli [ '/usr/bin/node', 1 verbose cli '/usr/bin/npm', 1 verbose cli 'install', 1 verbose cli 'https://github.com/daniel-2k/ioBroker.nanoleaf-lightpanels/tarball/master', 1 verbose cli '--production', 1 verbose cli '--save', 1 verbose cli '--prefix', 1 verbose cli '/opt/iobroker' ] 2 info using npm@6.4.1 3 info using node@v8.12.0 4 verbose npm-session bb22a4b3b2530406 5 silly install loadCurrentTree 6 silly install readLocalPackageData 7 http fetch GET 200 https://github.com/daniel-2k/ioBroker.nanoleaf-lightpanels/tarball/master 5406ms 8 silly pacote remote manifest for undefined@https://github.com/daniel-2k/ioBroker.nanoleaf-lightpanels/tarball/master fetched in 5438ms 9 timing stage:loadCurrentTree Completed in 13499ms 10 silly install loadIdealTree 11 silly install cloneCurrentTreeToIdealTree 12 timing stage:loadIdealTree:cloneCurrentTree Completed in 55ms 13 silly install loadShrinkwrap 14 timing stage:loadIdealTree:loadShrinkwrap Completed in 1955ms 15 silly install loadAllDepsIntoIdealTree 16 silly resolveWithNewModule iobroker.nanoleaf-lightpanels@0.8.2 checking installable status 17 http fetch GET 200 https://registry.npmjs.org/osx-temperature-sensor 353ms 18 silly pacote range manifest for osx-temperature-sensor@^1.0.4 fetched in 358ms 19 silly resolveWithNewModule osx-temperature-sensor@1.0.4 checking installable status 20 silly fetchPackageMetaData error for request-promise@file:node_modules/request-promise Could not install from "iobroker/node_modules/iobroker.javascript/node_modules/request-promi se" as it does not contain a package.json file. 21 timing stage:rollbackFailedOptional Completed in 0ms
An welcher Stelle kann ich ansetzen, ob diese "request-promise" loszuwerden?
Danke
oetti -
@oetti sagte in Installation "request-promise" Modul schlägt fehl:
An welcher Stelle kann ich ansetzen, ob diese "request-promise" loszuwerden?
mit
npm ls request-promise
im Ordner/opt/iobroker
findest du einen Anhaltspunkt, wo das benötigt wird. -
@AlCalzone sagte in Installation "request-promise" Modul schlägt fehl:
npm ls request-promise
OK, das sieht dann so aus.
npm ls request-promise iobroker.inst@1.1.2 /opt/iobroker ├─┬ iobroker.javascript@4.1.12 │ └── UNMET DEPENDENCY request-promise@file:node_modules/request-promise ├─┬ iobroker.sonos@1.7.7 │ └─┬ sonos-discovery@1.1.3 │ └── request-promise@1.0.2 ├─┬ iobroker.telegram@1.4.3 │ └─┬ node-telegram-bot-api@0.30.0 │ └── request-promise@4.2.4 └── UNMET DEPENDENCY request-promise@^4.2.5 npm ERR! missing: request-promise@^4.2.5, required by iobroker.inst@1.1.2 npm ERR! missing: request-promise@file:node_modules/request-promise, required by iobroker.javascript@4.1.12