npm 发布到 nexus

npm publish to nexus

我正在尝试使用此命令将 npm 包发布到我们的 nexus 私有注册表:

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

但是我收到这个错误:

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.

这是我的 npm 配置 (.npmrc) :

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

我该如何解决这个问题?

编辑:

npm -v: 5.3.0

node -v:v8.8.0

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

您是否正在尝试发布到代理或群组 URL?我问是因为 URL 看起来就像是 npmjs 的代理,只是按照命名约定。如果是这样,请确保您使用的 URL 用于私有托管存储库。

另外,使用 Nexus Repository 3 :)

感谢@DarthHater,我找到了解决方案,所以我想做的是发布到代理存储库,它指向官方的 npm 注册表,而不是这样做我必须创建一个私有的(托管的) ) 我自己的包的存储库,然后使用组存储库在单个 URL 下提供所有存储库,这样做我必须将组存储库设置为默认存储库(在 .npmrc 中)和私有存储库作为发布存储库(在 package.json 中),并且不要忘记在 .npmrc 中分配电子邮件(任何电子邮件),因此在发布时它将使用本地 [=10= 中的设置](身份验证...)而不是主页中的设置 .npmrc