npm - nexus npm 发布失败,出现错误 -4048

标签 npm nexus

我正在尝试将我的私有(private)模块发布到新的设置 nexus OSS 3.8.0-02(在 sonatype/nexus3 docker 容器中运行),并遇到 errno: -4048 错误.

我的 npm 版本在:node v8.9.4 和 npm v5.6.0

我已经尝试在我的 C:\Users\AHOU\目录下的 .npmrc 中添加我的 base64 编码的用户名和密码,如下所示

always-auth=true
_auth="<generated base64>"
email=anselmhou.ps@gmail.com
prefix=C:\kits\npm
@ngpf:registry=http://<nexus server ip>:28081/nexus/repository/npm-public/

但是每当我尝试运行命令时:npm publish -ddd --registry http://<nexus server ip>:28081/nexus/repository/npm-private/
它只是给出以下错误
npm sill mapToRegistry uri http://<nexus server ip>:28081/nexus/repository/npm-public/@ngpf%2fcore
npm verb publish registryBase http://<nexus server ip>:28081/nexus/repository/npm-public/
npm sill publish uploading C:\Users\AHOU\AppData\Local\Temp\npm-9292-9e938c82\tmp\fromDir-f6e11f6c\package.tgz
npm verb stack Error: EPERM: operation not permitted, unlink 'C:\Users\AHOU\AppData\Local\Temp\npm-9292-9e938c82\tmp\fromDir-f6e11f6c\package.tgz'
npm verb cwd P:\PCCW Framework\workspace\ngpf\ngpf-core\dist
npm verb Windows_NT 10.0.16299
npm verb argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "publish" "-ddd" "--registry" "http://    <nexus server ip>:28081/nexus/repository/npm-private/"
npm verb node v8.9.4
npm verb npm  v5.6.0
npm ERR! path C:\Users\AHOU\AppData\Local\Temp\npm-9292-9e938c82\tmp\fromDir-f6e11f6c\package.tgz
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall unlink
npm ERR! Error: EPERM: operation not permitted, unlink 'C:\Users\AHOU\AppData\Local\Temp\npm-9292-9e938c82\tmp\fromDir-f6e11f6c\package.tgz'
npm ERR!  { Error: EPERM: operation not permitted, unlink 'C:\Users\AHOU\AppData\Local\Temp\npm-9292-9e938c82\tmp\fromDir-f6e11f6c\package.tgz'
npm ERR!   cause:
npm ERR!    { Error: EPERM: operation not permitted, unlink 'C:\Users\AHOU\AppData\Local\Temp\npm-9292-9e938c82\tmp\fromDir-f6e11f6c\package.tgz'
npm ERR!      errno: -4048,
npm ERR!      code: 'EPERM',
npm ERR!      syscall: 'unlink',
npm ERR!      path: 'C:\\Users\\AHOU\\AppData\\Local\\Temp\\npm-9292-9e938c82\\tmp\\fromDir-f6e11f6c\\package.tgz' },
npm ERR!   isOperational: true,
npm ERR!   stack: 'Error: EPERM: operation not permitted, unlink     \'C:\\Users\\AHOU\\AppData\\Local\\Temp\\npm-9292-9e938c82\\tmp\\fromDir-f6e11f6c\\package.tgz\'',
npm ERR!   errno: -4048,
npm ERR!   code: 'EPERM',
npm ERR!   syscall: 'unlink',
npm ERR!   path: 'C:\\Users\\AHOU\\AppData\\Local\\Temp\\npm-9292-9e938c82\\tmp\\fromDir-f6e11f6c\\package.tgz' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm verb exit [ -4048, true ]    

任何见解或建议都会有所帮助。

先感谢您,
安瑟伦

最佳答案

为人们回答我自己的问题可能和我的一样。

最后,我发现错误消息非常具有误导性,与文件系统无关。实际上,此错误与我的 npm publish 对我尝试发布的注册表无效有关。

所以我对这个问题的解决方案是:

  • 将注册表或范围注册表设置为与我相同的注册表
    试图发布即 http://<nexus server:ip?/nexus/repository/npm-private/
  • npm login --registry http://<nexus server:ip?/nexus/repository/npm-private/存储 session 。
  • 仅对于 nexus 端,确保还添加了 npm 领域。默认情况下未选中。
  • npm publish

  • 出于故障排除的目的,还应该看到 npm 正在发布到私有(private)存储库并且应该有 npm verb request using bearer token for authnpm publish 期间请求日志。

    引用:https://github.com/npm/npm/issues/17450

    关于npm - nexus npm 发布失败,出现错误 -4048,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48964247/

    相关文章:

    NPM 警告 无描述且无存储库字段

    javascript - 使用npm的request包,你应该如何传递最初保存在文件中的数据?

    javascript - 通过 npm 安装后 lodash.js 在哪里?

    node.js - 自定义 Yeoman 生成器的 npm 测试失败

    java - 在Nexus储存库中找不到 Artifact (快照)

    docker - 使用 Sonatype nexus 控制对 docker registry 的访问

    javascript - 有没有一种有效的方法来区分由 `npm list` 填充的两个依赖关系树?

    android - Android项目的依赖管理

    nexus - Sonatype Nexus 清理任务处于等待状态

    maven - 本地 Nexus 存储库通过 POM 依赖提取除主 jar 之外的所有内容