NEWS
[Frage] Bereitstellen Widgets in npm bzw Repro
-
Hallo,
ich steh irgendwie gerade auf dem Schlauch und komm nicht weiter. Mein erstes Widget ist soweit getestet und läuft in meinen Augen stabil. Thread im Testforum gibt es.
Jetzt wollte ich mich damit befassen wie ich das Widget in die Stable bzw. Latest Repro bekomme und scheitere total. Scheint dass ich einen kompletten Knoten im Hirn hab.
Muss ich meine Sourcen erst in npm bringen? Hab das versucht aber das bringt mir meine Versionshinweise durcheinander und ich schnall das nicht wirklich. Wie kommt es dann in die Repros, so dass die Anwender es darüber finden und vor allem über Updates informiert werden?
Wäre super wenn ihr mir helfen könntet und etwas Geduld mit bringt
Dafür verspreche ich auch mir Mühe zu geben -
Niemand eine Hilfe?
Gibt es eine Doku die ich noch nicht gefunden habe? -
@buchi Genau, dein Adapter muss zuerst auf NPM veröffentlicht werden. Dafür brauchst du zuerst einmal einen npmjs.com Account.
Im
test-and-release
GitHub Workflow ist dann auch schon alles drin, was du für einen NPM-Release brauchst.
Siehe https://github.com/gerbuchner/ioBroker.vis-owl/blob/main/.github/workflows/test-and-release.yml#L31
Dort musst du letztendlich nur die Zeilen 36 bis 54 aktivieren (# am Anfang entfernen).
Auf npmjs.com legst du dir dann ein Access Token vom Typ Automation an. Dieses trägst du im GitHub Repo unter Secrets->Actions alsNPM_TOKEN
ein.Wenn du dann einen Tag setzt, übernimmt die GitHub Action eigentlich alles und macht den NPM-Release für dich.
Zur Aufnahme in das Latest-Repo von ioBroker musst du deinen Adapter dann über einen PR bei https://github.com/ioBroker/ioBroker.repositories hinzufügen. Dort steht auch alles weitere, was dafür noch für Anforderungen existieren.
-
@crycode danke das hat mir auch sehr geholfen.
Allerdings habe ich noch diese zwei Probleme:
[W400] Cannot find "pvforecast" in latest repository [W801] .npmignore not found
kannst du mir dabei helfen?
-
@patrickwalther Das erste ignorieren.
Zum zweiten, entweder du erstellt ein
.npmignore
file in welches du rein schreibst, welche deiner Files die da lokal rumschwirren nicht mit auf npm veröffentlicht werden sollen. z. B. Tests müssen nicht mit im Package sein, unnötige Files zum runterladen für den User. Oder die mmn bessere Variante du erstellst in package.json ein Arrayfiles
und übergibst dort nur die Dateien welche auf npm veröffentlicht werden sollen. Also das letztere ist eine Whitelist, npmignore eine Blacklist.Siehe z. B. hier, aber vergiss deine Widgets nicht
-
@foxriver76 Genau, die Meldung
[W400] Cannot find "pvforecast" in latest repository
verschwindet, sobald dein Adapter in das Latest Repository aufgenommen wurde und kann bis dahin ignoriert werden.Mit dem Adapter Creator Version 2.0.0 wurde die Empfehlung vom Blacklisting per
.npmignore
auf Whitelisting über diepackage.json
umgestellt. Details dazu hier.Auch immer gut zum Prüfen deines Adapters: https://adapter-check.iobroker.in/