NEWS
Cannot find module 'csv-parse'
-
Hallo,
ich habe schon wie wild rumrecherchiert, aber leider keine Lösung für mein Problem gefunden und nun hoffe ich auf eure Hilfe.
Ich möchte eine csv-Datei einlesen und da bin ich auf "csv-parse" gestoßen, doch der Skript-Editor von iobroker sagt mir "Cannot finde module 'csv-parse'" in der Zeile:
var parse = require('csv-parse');In der Javascript-Instanz habe ich "csv-parse" unter "zusätzliche NPM-Module" eingetragen. Vorher natürlich auch ein "npm install csv" gemacht.
Wenn ich den Befehl "find . -name csv" unter dem Verzeichnis /opt/iobroker ausführe, kommt folgende Ausgabe:
./node_modules/iobroker.javascript/node_modules/csv-stringify ./node_modules/iobroker.javascript/node_modules/csv ./node_modules/iobroker.javascript/node_modules/csv-generate ./node_modules/iobroker.javascript/node_modules/csv-parse ./node_modules/iobroker.javascript/node_modules/csv-parse/samples/fs_read.csv ./node_modules/csv-stringify ./node_modules/csv ./node_modules/csv-generate ./node_modules/csv-parse ./node_modules/csv-parse/samples/fs_read.csvnpm -v:
5.10.0
node -v:
v6.14.1
Habt ihr noch eine Idee, was ich machen muss, damit ich das csv-parse nutzen kann?
Besten Dank schonmal! :-)
-
In der Javascript-Instanz habe ich "csv-parse" unter "zusätzliche NPM-Module" eingetragen. `
Das ist richtig. Das NPM-Modul wird anschließend automatisch installiert.
@tööö:Vorher natürlich auch ein "npm install csv" gemacht. `
Das ist unnötig.
@tööö:der Skript-Editor von iobroker sagt mir "Cannot finde module 'csv-parse'" `
Einige Editor-Meckereien sollte man ignorieren !Compiler- und Laufzeitfehler sollte man ernst nehmen.
-
Danke erstmal für die Informationen.
Fehler, welche ein Ausführen des Skriptes verhindern, sind folgende:
error javascript.0 script.js.Datei: /opt/iobroker/node_modules/csv-parse/lib/index.js:19 error javascript.0 at script.js.Datei:1:13 error javascript.0 script.js.Datei: script.js.Datei:4 error javascript.0 at script.js.Datei:4:1Mein kompletter Code:
var parse = require('csv-parse'); var input = '#Welcome\n"1","2","3","4"\n"a","b","c","d"'; parse(input, {comment: '#'}, function(err, output){ // show result console.log(JSON.stringify(output)); });Der erste Fehler hat mich vermuten lassen, dass es noch Fehler in der Installation gibt. Ansonsten meckert er ja die erste Zeile an, aber ich verstehe nicht so richtig, warum?
-
Bei mir funktioniert es:

@tööö:error javascript.0 script.js.Datei: /opt/iobroker/node_modules/csv-parse/lib/index.js:19 ```` `Das Verzeichnis gibr es bei mir nicht, sondern nur die unter node_modules/iobroker.javascript/node_modules.
Lösche noch mal das NPM-Modul aus der JS-Konfiguration, dann speichern und danach wieder eintragen.
-
Leider immer noch das gleiche Problem.
Bei mir liegen die verschiedenen csv-Ordner (csv, csv-generate, csv-parse, csv-stringify) an zwei Stellen. Einmal unter "/opt/iobroker/node_modules/" und einmal unter "/opt/iobroker/node_modules/iobroker.javascript/node_modules".
Kann das das Problem sein? Kann ich die Ordner unter /opt/iobroker/node_modules/ einfach löschen?
-
Ok, nun habe ich nur noch an der richtige Stelle die entsprechenden csv-Ordner und ich bin einen Schritt weiter.
Nach Neustart vom Javascript-Adapter und Anstarten vom Skript kommt nun der Fehler:
error javascript.0 script.js.Datei: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../csv-parse'Was sucht er denn da im lib-Ordner? Der sieht folgendermaßen bei mir aus:
-rw-rw-rw- 1 pi pi 2531 Oct 26 1985 consts.js -rw-rw-rw- 1 pi pi 3860 Oct 26 1985 convert.js -rw-rw-rw- 1 pi pi 6552 Oct 26 1985 eventObj.js -rw-rw-rw- 1 pi pi 32488 Oct 26 1985 javascript.d.ts -rw-rw-rw- 1 pi pi 13817 Oct 26 1985 mirror.js -rw-rw-rw- 1 pi pi 13042 Oct 26 1985 patternCompareFunctions.js -rw-rw-rw- 1 pi pi 109079 Oct 26 1985 sandbox.js -rw-rw-rw- 1 pi pi 11588 Oct 26 1985 scheduler.js -rw-rw-rw- 1 pi pi 675 Oct 26 1985 tools.js -rw-rw-rw- 1 pi pi 2279 Oct 26 1985 utils.js -rw-rw-rw- 1 pi pi 1789 Oct 26 1985 words.jsMich wundern auch die "/../../" in der Fehlermeldung. Sucht er da noch nach anderen Ordnern, die er nicht findet?
-
Hatte ich auch schon versucht, leider ohne Erfolg.
Habe sogar ein
sudo npm --force cache cleangemacht, aber auch das bringt nichts… :(
Wenn du keine andere Idee mehr hast, würde ich ein Backup einspielen (geht ja zum Glück recht fix und dann nochmal im JavaScript-Adapter "csv-parse" eintragen, ohne vorher etwas mit npm zu machen.
-
Hat leider alles nichts gebracht… :?
Was ich komisch finde, dass nach dem Restore trotzdem noch die csv-Ordner unter
/opt/iobroker/node_modules/iobroker.javascript/node_modules
vorhanden waren. Ich dachte, die installiert er erst, wenn ich das im Javascript-Adapter eintrage, oder?
Komisch nur, dass es bei dir funktioniert. Was kommt denn bei dir raus, wenn du ein "find . -name csv" in /opt/iobroker ausführst?
./node_modules/iobroker.javascript/node_modules/csv-stringify ./node_modules/iobroker.javascript/node_modules/csv ./node_modules/iobroker.javascript/node_modules/csv-generate ./node_modules/iobroker.javascript/node_modules/csv-parse ./node_modules/iobroker.javascript/node_modules/csv-parse/samples/fs_read.csvAnsonsten hast du auch nur im Adapter das "csv-parse" eingetragen und das Skript gestartet, oder?
:?:
Was wäre noch ein Versuch? Den Javascript-Adapter löschen, damit erstmal der ganze Müll weg ist und dann den Adapter neu installieren? Mache ich damit andere Sachen kaputt?
-
-
Noch jemand eine Idee, wie ich das csv-parse Modul eingebunden bekomme?
Habe sogar schon den Javascript-Adapter neu installiert, sodass nun alles sauber ist. csv-parse ist nur noch unter folgenden Verzeichnissen zu finden:
/opt/iobroker/node_modules/iobroker.javascript/node_modules/csv-parse /opt/iobroker/node_modules/iobroker.javascript/node_modules/csv-parse/samples/fs_read.csvDennoch kommt folgender Fehler:
Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../csv-parse'Ich weiß nicht, was er da mit dem lib-Ordner machen will?
Ich hoffe, einer weiß noch eine Lösung oder Versuche, die man noch machen könnte. :|

