3

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

4

2 回答 2

3

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

于 2017-10-31T09:50:52.087 回答
1

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

另外,使用 Nexus Repository 3 :)

于 2017-10-28T01:23:28.733 回答