【问题标题】:npm fails on publish a package to artifactorynpm 无法将包发布到工件
【发布时间】:2018-09-25 23:41:20
【问题描述】:

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

  • 操作系统版本:Windows Server 2008 R2 企业版
  • 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 检查了登录用户,它拥有将包部署到工件服务器的完整权限。 此外,发布命令正在其他相同的 jenkins slave 上工作,即 windows 服务器,但 npm 版本为 3.10.10。因此,我尝试将有问题的 jenkins slave 中的 npm 版本降级为 3.10.10 ,并且发布运行成功。

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

有人知道我能做什么吗?

谢谢!

【问题讨论】:

    标签: node.js jenkins npm


    【解决方案1】:

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

    示例身份验证详细信息

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

    【讨论】:

      猜你喜欢
      • 2022-09-24
      • 2021-01-01
      • 1970-01-01
      • 2019-10-15
      • 2019-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多