Artifactory npm 发布失败 PUT 404

Artifactory npm publish failed PUT 404

我正在尝试将范围内的 npm 包发布到 artifactory,但出现以下错误:

npm ERR! registry error parsing json
npm ERR! publish Failed PUT 404
npm ERR! Darwin 15.4.0
npm ERR! argv "/usr/local/Cellar/node4-lts/4.6.2/bin/node" "/usr/local/bin/npm" "publish"
npm ERR! node v4.6.2
npm ERR! npm  v2.15.9

npm ERR! Unexpected token <
npm ERR! <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
npm ERR! <html><head>
npm ERR! <title>404 Not Found</title>
npm ERR! </head><body>
npm ERR! <h1>Not Found</h1>
npm ERR! <p>The requested URL /artifactory/api/npm/npm-local/@acres/acresmetajs was not found on this server.</p>
npm ERR! <hr>
npm ERR! <address>Apache/2.2.31 (Amazon) Server at artifacts.company.com Port 80</address>
npm ERR! </body></html>

我已经按照以下方式设置了我的 .npmrc 文件:

registry=http://artifacts.company.com/artifactory/api/npm/npm-local/
_auth="mypassword"
always-auth=true
email=d.griner@company.com
@acres:registry=http://artifacts.company.com/artifactory/api/npm/npm-local/
//artifacts.company.com/artifactory/api/npm/npm-local/:_password=mypassword
//artifacts.company.com/artifactory/api/npm/npm-local/:username=myusername
//artifacts.company.com/artifactory/api/npm/npm-local/:email=d.griner@company.com
//artifacts.company.com/artifactory/api/npm/npm-local/:always-auth=true

我 运行 npm publish 和 npm publish --registry http://artifacts.company.com/artifactory/api/npm/npm-local/ 并得到同样的错误。我错过了什么?

我发现如果 artifactory 在 maven 之后,还需要几个步骤才能让范围包与 artifactory 一起工作。 https://techblog.dorogin.com/setting-up-artifactory-as-npm-repository-behind-apache-7541d5140492#.z0q412z5j

本质上:

  • AllowEncodedSlashed 设置为 NoDecode(默认关闭)
  • 为 ProxyPass 添加关键字 nocanon,它告诉 mod_proxy 模块不要规范化 URL

我在 6.5.0 版本上得到了这个。解决方案是从 package.json.

中删除 "engines" 组
npm ERR! publish Failed PUT 404
npm ERR! code E404
npm ERR! 404 NotFound The package 'xxxxxxxx' was not found in feed 'npmjs': xxxxxxxx
npm ERR! 404
npm ERR! 404  'xxxxxxxx' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.