我正在尝试使用以下命令将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
发布于 2017-10-31 17:50:52
多亏了@DarthHater,我找到了解决方案,所以我要做的是发布到代理存储库,它指向官方的npm注册表,而不是为我自己的包创建一个私有(托管)存储库,然后使用组存储库来提供单个URL下的所有repos,通过这样做,我必须将组存储库设置为默认存储库(在.npmrc中),并将私有存储库设置为发布存储库(在package.json中)。不要忘记在.npmrc中分配电子邮件(任何电子邮件),以便在发布时使用本地.npmrc中的设置(身份验证...)而不是家庭.npmrc中的设置。
发布于 2017-10-28 09:23:29
您是否正在尝试发布到代理或组URL?我这样问是因为URL看起来像是npmjs的代理,只是根据命名约定。如果是,请确保您使用的URL用于私有托管存储库。
另外,使用Nexus Repository 3 :)
https://stackoverflow.com/questions/46978820
复制相似问题