nexus npm发布失败,错误为-4048

nexus npm发布失败,错误为-4048,npm,nexus,Npm,Nexus,我试图将我的私有模块发布到一个新的安装程序nexus OSS 3.8.0-02(在sonatype/nexus3 docker容器中运行),并遇到一个错误,错误号为:errno:-4048 我的npm版本是:节点v8.9.4和npm v5.6.0 我已经尝试将base64编码的用户名和密码添加到.npmrc中,它位于我的C:\Users\AHOU\目录下,如下所示 always-auth=true _auth="<generated base64>" email=anselmhou.

我试图将我的私有模块发布到一个新的安装程序nexus OSS 3.8.0-02(在sonatype/nexus3 docker容器中运行),并遇到一个错误,错误号为:
errno:-4048

我的npm版本是:节点v8.9.4和npm v5.6.0

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

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/
始终验证=true
_auth=“”
电子邮件=anselmhou。ps@gmail.com
前缀=C:\kits\npm
@ngpf:registry=http://:28081/nexus/repository/npm public/
但是每当我尝试运行命令时:
npm publish-ddd--registry http://: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-sill-mapToRegistry-uri http://:28081/nexus/repository/npm-public/@ngpf%2fcore
npm谓词发布注册库http://:28081/nexus/repository/npm public/
npm发布上载C:\Users\AHOU\AppData\Local\Temp\npm-9292-9e938c82\tmp\fromDir-f6e11f6c\package.tgz
npm谓词堆栈错误:EPERM:不允许操作,取消链接“C:\Users\AHOU\AppData\Local\Temp\npm-9292-9e938c82\tmp\fromDir-f6e11f6c\package.tgz”
npm动词cwd P:\PCCW Framework\workspace\ngpf\ngpf core\dist
npm动词Windows\u NT 10.0.16299
npm动词argv“C:\\Program Files\\nodejs\\node.exe”“C:\\Program Files\\nodejs\\node\U模块\\npm\\bin\\npm cli.js”“publish”“-ddd”“--注册表”“http://:28081/nexus/repository/npm private/”
npm谓词节点v8.9.4
npm动词npm v5.6.0
npm错误!路径C:\Users\AHOU\AppData\Local\Temp\npm-9292-9e938c82\tmp\fromDir-f6e11f6c\package.tgz
npm错误!代码EPERM
npm错误!errno-4048
npm错误!系统调用取消链接
npm错误!错误:EPERM:不允许操作,取消链接“C:\Users\AHOU\AppData\Local\Temp\npm-9292-9e938c82\tmp\fromDir-f6e11f6c\package.tgz”
npm错误!{错误:EPERM:不允许操作,取消链接'C:\Users\AHOU\AppData\Local\Temp\npm-9292-9e938c82\tmp\fromDir-f6e11f6c\package.tgz'
npm错误!原因:
npm ERR!{错误:EPERM:不允许操作,取消链接'C:\Users\AHOU\AppData\Local\Temp\npm-9292-9e938c82\tmp\fromDir-f6e11f6c\package.tgz'
npm错误!错误号:-4048,
npm ERR!代码:“EPERM”,
npm ERR!系统调用:“取消链接”,
npm ERR!path:'C:\\Users\\AHOU\\AppData\\Local\\Temp\\npm-9292-9e938c82\\tmp\\fromDir-f6e11f6c\\package.tgz'},
npm错误!等操作:正确,
npm ERR!堆栈:“错误:EPERM:不允许操作,取消链接\C:\\Users\\AHOU\\AppData\\Local\\Temp\\npm-9292-9e938c82\\tmp\\fromDir-f6e11f6c\\package.tgz\”,
npm错误!错误号:-4048,
npm ERR!代码:“EPERM”,
npm ERR!系统调用:“取消链接”,
npm ERR!路径:“C:\\Users\\AHOU\\AppData\\Local\\Temp\\npm-9292-9e938c82\\tmp\\fromDir-f6e11f6c\\package.tgz'}
npm错误!
npm错误!请以root/管理员身份再次尝试运行此命令。
npm动词退出[-4048,true]
任何见解或建议都会有所帮助

提前谢谢大家,,
Anselm

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

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

因此,我对这个问题的解决方案是:

  • 将注册表或作用域注册表设置为我正在使用的同一注册表
    正在尝试发布,即http://,因此另一个答案是好的,即在.npmrc文件中设置注册表,如

    您需要像这样进行登录

    npm login --registry=http://IDK.com:8081/repository/yourRepo/
    
    然后你需要为自己存储一个管理员/密码/电子邮件。这将在“home”目录中的.npmrc文件中结束

    registry=https://registry.npmjs.org/   
    @youreRegistry=http;//yourRegistry.com:8081/repository/thatRepoYouMadeInNexus/
    
    ^注意后面的正斜杠

    我还设置了:

    always-auth=false
    
    另一个旁注。跳转到您的package.json中,获取您试图推送的代码,并将以下条目放入其中:

    "publishConfig": {
    "yourRegistryName": "...your private registry..."
    }
    
    ^请注意,如果注册表的开头有“@”或一个特殊名称,请确保不要只放“注册表”。否则这将只是“注册表”:

    对于那些不知道什么是持币代币或领域,也不知道为什么会出现此错误,或者为什么会出现未经授权的403 401的人。看看这个

    希望有帮助。这肯定是我修好东西的原因。他随后立即开始工作。 参考资料