2017-10-27 10 views
0

Ich versuche, ein npm Paket zu unserem Nexus privaten Registrierung mit diesem Befehl zu veröffentlichen:npm zu nexus veröffentlichen

npm publish --registry http://localhost:8081/nexus/content/repositories/npmjs

aber ich bekomme diese Fehlermeldung:

npm ERR! path C:\Users\USER~1.MAJ\AppData\Local\Temp\npm-13292-e2329f38\tmp\fromDir-e7e42b8d\package.tgz 
npm ERR! code EPERM 
npm ERR! errno -4048 
npm ERR! syscall unlink 
npm ERR! Error: EPERM: operation not permitted, unlink 'C:\Users\USER~1.MAJ\AppData\Local\Temp\npm-13292-e2329f38\tmp\fromDir-e7e42b8d\package.tgz' 
... 
npm ERR! Please try running this command again as root/Administrator. 

und das ist Meine NPM-Konfiguration (.npmrc):

registry: 'http://localhost:8081/nexus/content/repositories/npmjs/', 
    _auth: 'YWRtaW46YWRtaW4xMjM=', 
    'always-auth': true 

Wie kann ich das lösen?

Edit:

npm -v: 5.3.0

node -v: v8.8.0

npm config get registry: http://localhost:8081/nexus/content/repositories/npmjs

+0

Weitere Informationen, welches System verwenden Sie, welche Version von Node, welche Version von NPM? Sind Sie auch lokal verbunden? – Lissy

+1

@Lissy bitte überprüfen Sie mein Update –

Antwort

1

Dank @DarthHater ich die Lösung herausgefunden, also was ich versuchte, an den Proxy-Repository zu tun veröffentlicht, die auf der offiziellen npm Register zeigt wurde, statt Dazu muss ich ein eigenes (gehostetes) Repository für meine eigenen Pakete erstellen und dann ein Gruppenrepository verwenden, um alle Repos unter einer einzigen URL bereitzustellen, indem ich das Gruppenrepository als Standardrepository (in .npmrc) und das private Repository als Veröffentlichungsrepository (in package.json), und vergessen Sie nicht, eine E-Mail in der .npmrc (beliebige E-Mail) zuzuweisen, so dass bei der Veröffentlichung Einstellungen in der lokalen .npmrc (Authentifizierung ...) verwendet werden nd nicht die Einstellungen in der Heimat .npmrc.

0

Ich denke, das ist eigentlich ein bekanntes Problem von NPM.

Als temporäre Lösung für jetzt, degradieren zu NPM V5.3 npm install [email protected] -g

+1

Ich habe bereits die Version 5.3 Entschuldigung für das nicht einschließlich, überprüfen Sie bitte mein Update –

+0

Hmm, das ist seltsam dann- weil das für mich behoben. Wenn Sie NPM aktualisiert haben, nachdem Sie das Problem zum ersten Mal gesehen haben, würde ich vorschlagen, das Verzeichnis node_modules zu entfernen und eine Neuinstallation durchzuführen. Entschuldigung, ich weiß eine triviale Antwort, aber das behebt die Dinge oft. 'rm -r node_modules && yarn' – Lissy

+0

Wenn Sie VS-Code verwenden oder eine IDE, die Dateien als geöffnet markiert, versuchen Sie auch, das zu schließen. Manchmal kann dieser Fehler durch Dateien verursacht werden, auf die von zwei verschiedenen Anwendungen gleichzeitig zugegriffen wird :) – Lissy

0

Sind Sie an den Proxy oder Gruppe URL zu veröffentlichen versucht? Ich frage, weil die URL so aussieht, als wäre sie ein Proxy von npmjs, nur durch die Namenskonvention. Wenn dies der Fall ist, stellen Sie sicher, dass die von Ihnen verwendete URL für den privaten gehosteten Repo verwendet wird.

Verwenden Sie auch Nexus Repository 3 :)

+0

Ich möchte auf den Proxy veröffentlichen, das ist meine Nexus-Verwaltung ui: https://imgur.com/a/2xMXL –

+0

Es ist nicht möglich, auf Proxies zu veröffentlichen. Sie wirken wie ein Spiegel des Upstream.Sie sollten einen gehosteten Repo für npmjs einrichten und dann eine Gruppe erstellen, die wahrscheinlich sowohl die Upstream-Pakete npmjs als auch Ihre eigenen internen Pakete im gehosteten Repository verwendet. – DarthHater

+0

Also habe ich getan, wie Sie gesagt haben, ich habe ein Gruppenrepository erstellt, das den privaten Repo und den Proxy-Repo unter einer einzigen URL bereitstellt, die ich verwenden werde, um meine Pakete herunterzuladen, und für die Veröffentlichung habe ich das private Repo, die Veröffentlichung verwendet jetzt funktioniert, aber wenn ich versuche, etwas aus dem Gruppenrepository herunterzuladen, bekomme ich den Fehler nicht gefunden für das Paket, das ich herunterladen möchte, auch wenn es dort im privaten Repository ist, das gleiche für Pakete im Proxy-Repository, es scheint wie die Das Gruppenrepository zeigt weder auf das Proxy-Repository noch auf das private Repository. –

Verwandte Themen