代码之家  ›  专栏  ›  技术社区  ›  Renaud is Not Bill Gates

npm发布到nexus

  •  3
  • Renaud is Not Bill Gates  · 技术社区  · 7 年前

    我正在尝试使用以下命令将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

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

    2 回复  |  直到 7 年前
        1
  •  3
  •   Renaud is Not Bill Gates    7 年前

    多亏了@DarthHater,我找到了解决方案,所以我想做的是发布到代理存储库,代理存储库指向官方npm注册表,而不是这样做,我必须为自己的包创建一个私有(托管)存储库,然后使用组存储库在单个URL下提供所有回购,通过这样做,我必须将组存储库设置为默认存储库(在 .npmrc )私有存储库作为发布存储库(在 package.json .npmrc (任何电子邮件)因此在发布时将使用本地 (身份验证…)而不是家里的设置 .npmrc .

        2
  •  1
  •   DarthHater    7 年前

    您是否试图发布到代理或组URL?我这样问是因为这个URL看起来就像是NPMJ的代理,只是按照命名约定。如果是这样,请确保您使用的URL用于私有托管回购。

    此外,请使用Nexus存储库3:)