npm发布到nexus

时间:2017-10-27 15:41:53

标签: npm nexus npm-publish

我尝试使用此命令将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 registryhttp://localhost:8081/nexus/content/repositories/npmjs

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

另外,使用Nexus Repository 3:)

答案 2 :(得分:0)

我认为这实际上是NPM的一个已知问题。

暂时解决这个问题,降级到NPM V5.3 npm install npm@5.3 -g