繁体   English   中英

npm无法将软件包发布到工件

[英]npm fails on publish a package to artifactory

我正在尝试在我的詹金斯奴隶之一即Windows服务器上发布npm模块。 机器的详细信息是:

  • 操作系统版本:Windows Server 2008 R2 Enterprise
  • npm版本:5.7.1
  • node_js版本:8.10.0

我正在运行的命令是:

npm publish --registry https://artifactory/artifactory/api/npm/npm-internal

运行命令后,出现以下错误:

npm ERR! publish Failed PUT 403
npm ERR! path C:\Windows\TEMP\17\npm-13996-ae750e79\tmp\fromDir-6b5530ec\package.tgz
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall unlink
npm ERR! Error: EPERM: operation not permitted, unlink 'C:\Windows\TEMP\17\npm-13996-ae750e79\tmp\fromDir-6b5530ec\package.tgz'
npm ERR!  { Error: EPERM: operation not permitted, unlink 'C:\Windows\TEMP\17\npm-13996-ae750e79\tmp\fromDir-6b5530ec\package.tgz'
npm ERR!   cause:
npm ERR!    { Error: EPERM: operation not permitted, unlink 'C:\Windows\TEMP\17\npm-13996-ae750e79\tmp\fromDir-6b5530ec\package.tgz'
npm ERR!      errno: -4048,
npm ERR!      code: 'EPERM',
npm ERR!      syscall: 'unlink',
npm ERR!      path: 'C:\\Windows\\TEMP\\17\\npm-13996-ae750e79\\tmp\\fromDir-6b5530ec\\package.tgz' },
npm ERR!   isOperational: true,
npm ERR!   stack: 'Error: EPERM: operation not permitted, unlink \'C:\\Windows\\TEMP\\17\\npm-13996-ae750e79\\tmp\\fromDir-6b5530ec\\package.tgz\'',
npm ERR!   errno: -4048,
npm ERR!   code: 'EPERM',
npm ERR!   syscall: 'unlink',
npm ERR!   path: 'C:\\Windows\\TEMP\\17\\npm-13996-ae750e79\\tmp\\fromDir-6b5530ec\\package.tgz' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\user\AppData\Roaming\npm-cache\_logs\2018-04-16T08_22_53_980Z-debug.log

我使用命令npm whoami进行了检查,谁是已登录的用户,它具有将程序包部署到工件服务器的完整权限。 另外,publish命令可在其他相同的jenkins从属服务器(Windows服务器,但npm版本3.10.10)上运行。 因此,我尝试将有问题的jenkins slave中的npm版本降级到3.10.10,并且发布成功运行。

我试图清理npm的缓存,卸载并安装nodejs和npm,但没有任何帮助。 我找不到在npm 3.10.10中起作用的原因,在npm 5.7.1中不起作用的原因。

有人知道我能做什么吗?

谢谢!

在“ C:\\ Users \\ user”位置添加.npmrc文件,其中包含jfrog工件身份验证详细信息。

样本身份验证详细信息

registry=<repository url>
_auth=<authentication token from artifactory>
email=<emailid>
always-auth = true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM