我正在尝试在我的一个jenkins奴隶上发布npm模块,这是Windows服务器。 机器的细节是:
我正在运行的命令是:
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检查了谁是登录的用户,并且它具有将包部署到artifactory服务器的完全权限。 此外,发布命令正在处理其他相同的jenkins slave,即windows服务器,但是使用npm版本3.10.10。因此,我试图将有问题的jenkins slave中的npm版本降级为3.10.10,并且发布成功运行。
我试图清理npm的缓存,卸载并安装nodejs和npm,但没有任何帮助。我无法在npm 3.10.10中找到合理的原因,并且在npm 5.7.1中它无法正常工作。
有人知道我能做什么吗?
谢谢!
答案 0 :(得分:0)
在“ C:\ Users \ user”位置添加.npmrc文件,其中包含jfrog工件身份验证详细信息。
示例身份验证详细信息
registry=<repository url>
_auth=<authentication token from artifactory>
email=<emailid>
always-auth = true