NEWS
Probleme mit npm install
-
[Hi zusammen,
meine ioBroker Installation läuft seit vielen Monaten ohne Probleme. Heute wollte ich mal schauen ob ich meinen eigenen Adapter schreiben kann und hab mich zum Start am ioBroker Template bedient (https://github.com/ioBroker/ioBroker.template).
Nach der Anleitung von Matthias Kleine sieht das Ganze ja auch nicht so wirklich kompliziert aus (https://haus-automatisierung.com/software/iobroker/2018/05/14/iobroker-dev-tutorial-modulentwicklung-luftdaten.html)Erster Schritt nach dem Git Clone ist ja ein "npm install" und genau hier komme ich nicht weiter. Ich glaube ich hab hier ein allgemeines Problem mit npm. Habe dann direkt mal npm, nodejs und alles was dazu gehört deinstalliert und die entsprechenden Verzeichnisse gelöscht - /opt/iobroker/ sowie /usr/lib/node_modules.
Danach nodejs in Version 10 (wie vorher auch) installiert und auf den neusten Stand gebracht:iobroker@raspberrypi:/opt/iobroker $ node -v v10.16.0 iobroker@raspberrypi:/opt/iobroker $ nodejs -v v10.16.0 iobroker@raspberrypi:/opt/iobroker $ npm -v 6.10.2
Sieht bis jetzt auch soweit alles gut aus, meiner Meinung nach. Problem ist selbst nach der kompletten Neuinstallation, genau das gleiche geblieben.
iobroker@raspberrypi:/opt/iobroker $ npm install > iobroker.inst@2.0.3 install /opt/iobroker > node lib/checkVersions.js NPM version: 6.10.2 > iobroker.inst@2.0.3 postinstall /opt/iobroker > node lib/install.js ╭─────────────────────────────────────────────────────────╮ │ │ │ Manual installation of ioBroker is no longer supported │ │ on Linux, OSX and FreeBSD! │ │ Please refer to the documentation on how to install it! │ │ https://github.com/ioBroker/ioBroker/wiki/Installation │ │ │ ╰─────────────────────────────────────────────────────────╯ npm ERR! code ELIFECYCLE npm ERR! errno 100 npm ERR! iobroker.inst@2.0.3 postinstall: `node lib/install.js` npm ERR! Exit status 100 npm ERR! npm ERR! Failed at the iobroker.inst@2.0.3 postinstall script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2019-07-25T15_15_10_529Z-debug.log
Im Logfile steht auch nichts besonderes. Ein npm audit zeigt dann folgendes:
iobroker@raspberrypi:/opt/iobroker $ npm audit npm ERR! code ELOCKVERIFY npm ERR! Errors were found in your package-lock.json, run npm install to fix them. npm ERR! Missing: iobroker.harmony@^1.2.2 npm ERR! Missing: iobroker.hue@^1.2.3 npm ERR! Missing: iobroker.influxdb@^1.6.3 npm ERR! Missing: iobroker.javascript@^4.1.14 npm ERR! Missing: iobroker.mqtt-client@^1.1.1 npm ERR! Missing: iobroker.shelly@^3.0.7 npm ERR! Missing: iobroker.squeezebox@^1.0.0 npm ERR! Missing: iobroker.tr-064@^0.4.18 npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2019-07-25T15_16_33_182Z-debug.log
Gibt es hier mit der aktuellen npm Version ein allgemeines Problem? Hab bereits das Netz und das Forum durchsucht, aber nichts passendes gefunden.
Grüße
Markus -
@BooosesThaSnipper sagte in Probleme mit npm install:
Erster Schritt nach dem Git Clone ist ja ein "npm install" und genau hier komme ich nicht weiter.
Da haben wir wieder den Fall, dass externe Anleitungen nicht unter unserer Kontrolle liegen.
Dasnpm install
muss in dem Verzeichnis ausgeführt werden, das du gerade geklont hast, nicht in/opt/iobroker
. Also in deinem Fall in/opt/iobroker/node_modules/iobroker.<adaptername>
.
Ich empfehle eine andere Herangehensweise an die Entwicklung, arbeite aber auch grundsätzlich nicht direkt auf dem Testsystem:
-
Auf dem Entwickler-System (oder auf dem Test-System in einem Ordner außerhalb von ioBroker) den Adapter-Creator ausführen:
npx @iobroker/create-adapter
und den Anweisungen folgen.
-
In den neu erstellten Ordner wechseln und programmieren.
Wenn es ans Testen geht, muss einmalig der Adapter in ioBroker installiert werden. Dazu
- Im Adapter-Ordner (Entwicklung)
npm pack
ausführen. - Die entstandene .tar.gz-Datei auf das Testsystem kopieren.
- In den ioBroker-Ordner wechseln:
cd /opt/iobroker
- Den gepackten Adapter installieren:
npm i /pfad/zur/targz/datei
- Instanz hinzufügen.
Bei Updates muss diese Prozedur nicht erneut durchlaufen werden. Es reicht die Dateien vom Entwicklungssystem/-ordner in
/opt/iobroker/node_modules/iobroker.<adaptername>
zu kopieren und den Adapter neu zu starten. Wenn du an den Abhängigkeiten was änderst, musst du erneutnpm install
im eben genannten Ordner ausführen. -