Howto private Projekte in Sinopia veröffentlichen (npm adduser für private Registrierung schlägt fehl)
Ok, so habe ich es endlich geschafft, sich ein eigenes npm-registry mit Sinopia. Aber ich kann nicht alles veröffentlichen.
TL;DR: Sinopia nicht unterstützt npm adduserhat aber seine eigenen user
management. Auch npm muss ein Gültiger Benutzer erstellt, bevor npm veröffentlichen
durch npm adduser, was fehlschlägt, weil die interne Sinopia server
wirft einen Fehler an der nicht unterstützten Befehl....
Wie nutzt man Sinopia als private Registrierung mit der richtigen Benutzer und Kennwörter
- erstellen Sie einen globalen Benutzer in npmjs.org und dann noch eine mit dem gleichen Passwort in Sinopia?
- Oder gibt es einen einfacheren Weg, zu sagen, npm, nur mit einer festen Benutzer/pass.
- Oder noch besser, fragt mich irgendwie für Benutzername und Passwort?
- etwas anderes?
Inhalt:
Sinopia hängt nicht von der Couch.DB und wird hapilly fetch-Pakete, die nicht bereits von einem master (default ist die Globale npmjs.org).
Sinopia startet perfekt und ist konfiguriert, um alle Schnittstellen Abhören. Es wirkt Wunder im Dienst-Pakete zu
npm install
Ich selbst konfigurierte ~/.npmrc zu weisen immer wieder auf die interne registry.
Alle Projekte' - Paket.json-Datei
....
"publishConfig" : {
"registry" : "http://internal-npm:4873"
},
....
Auch ich es geschafft, fügen Sie benutzerdefinierte Benutzer in sinopia durch die Manipulation der config.yaml mit Hilfe von js-yaml
crypto.createHash('sha1').update('theBigPassword').digest('hex')
Nun bin ich am stecken
npm --registry=http://internal-npm:4873 --ca=null publish
Nach langem warten bekomme ich:
npm ERR! need auth auth and email required for publishing
npm ERR! need auth You need to authorize this machine using `npm adduser`
npm ERR! System Linux 3.11.0-18-generic
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "--registry=http://internal-npm:4873" "--ca=null" "publish"
npm ERR! cwd /home/ciprian/workspace/netop-npm
npm ERR! node -v v0.10.15
npm ERR! npm -v 1.2.18
npm ERR! code ENEEDAUTH
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/ciprian/workspace/netop-npm/npm-debug.log
npm ERR! not ok code 0
Dem Ende der log-Datei sagt mir, dass der Nutzer nicht optional
86 error need auth auth and email required for publishing
86 error need auth You need to authorize this machine using `npm adduser`
87 error System Linux 3.11.0-18-generic
88 error command "/usr/bin/nodejs" "/usr/bin/npm" "--registry=http://internal-npm:4873" "--ca=null" "publish"
89 error cwd /home/ciprian/workspace/netop-npm
90 error node -v v0.10.15
91 error npm -v 1.2.18
92 error code ENEEDAUTH
93 verbose exit [ 1, true ]
Nun, die Huhn-und-ei - Problem ist, dass Sinopia nicht unterstützen npm adduser
sondern hat seine eigenen Benutzer-management-wie ich oben erwähnt habe. Auch npm muss ein Gültiger Benutzer erstellt durch npm adduser
was fehlschlägt, weil die interne Sinopia server gibt eine Fehlermeldung aus, an der nicht unterstützten Befehl.
InformationsquelleAutor der Frage cdanea | 2014-03-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zuerst von allen, ist es nicht das "Henne und ei" - problem.
"npm adduser" zwei Dinge tut:
Sinopia wird sich beschweren, wenn der Benutzer nicht existiert, aber wenn es das tut, werde gerne Bericht Erfolg.
So, was Sie zu tun haben ist dies:
npm adduser --registry http://internal-npm:4873/
Ja, "adduser" - Befehl ist verwirrend, weil es nicht wirklich einen neuen Benutzer hinzuzufügen. Es werden nur stellen Sie sicher, dass Benutzer ist in der config.
Wenn Sie möchten, können Sie mit "npm login" - Befehl. Es ist weniger verwirrend, obwohl es genau dasselbe tut. 🙂
Zweitens, fügen Sie diese auf Ihr Paket.json:
Diese Weise npm nicht veröffentlichen, um die öffentliche Registrierung mehr, auch wenn es sich um einen Standardwert ein.
Und schließlich können Sie nicht die Verwendung von zwei Registern (npmjs und private) in der gleichen Zeit mit dem gleichen npmrc. Es ist sogar weniger sicherals Sie denken.
Es ist okay, in den meisten Fällen, aber wenn Sie haben beide nutzen (wenn Sie zum Beispiel die Aufrechterhaltung der öffentlichen und privaten Pakete zur gleichen Zeit), verwenden Sie yapm statt npm und schreiben Sie etwas wie diese zu Ihrem .npmrc:
Werde es verhindern, dass die Offenlegung Ihrer Passwörter auf öffentliche Register in allen Fällen.
InformationsquelleAutor der Antwort alex
Den Sinopia README sagt Ihnen genau, was zu tun ist.
Legen Sie den neuen user in deiner config.yaml-Datei.
Laufen Sie dann
npm adduser
anmelden. (adduser
ist der Befehl für beide account-Erstellung und login; sinopia unterstützt nicht die Erstellung part.)InformationsquelleAutor der Antwort josh3736
Option 1 funktioniertaber ich bin nicht wirklich glücklich mit ihm. Also ich werde weiter auf der Suche
JA, wenn ich, fügen Sie eine gültige npmjs.org Nutzer, dann Smit der repo:
Den Befehl "veröffentlichen" wird funktionieren, wenn die gleichen user/pass existiert in Sinopia
Der Nachteil ist, dass, wenn jemand vergisst, der explizit die private Registrierung, das veröffentlichen wird 100% funktionieren auf dem globalen npmjs.org,, das wäre eine Katastrophe.
InformationsquelleAutor der Antwort cdanea
Ab version 0.13, Sinopia unterstützt die Erstellung eines neuen Benutzers durch
npm adduser --Registrierung Beispiel.com:port
Weitere details finden Sie unter: SO ERSTELLEN SIE EINE NEUE SINOPIA BENUTZER
InformationsquelleAutor der Antwort mvermand
Mir helfen Beitrag von sinopia 🙂
Siehe hier:
https://github.com/rlidwka/sinopia/issues/230#issuecomment-91825660
InformationsquelleAutor der Antwort darky