从Artifactory安装范围内的npm包

时间:2016-11-29 15:58:01

标签: node.js apache tomcat npm artifactory

我正在尝试使用作用域的npm包来处理Apache背后的Artifactory。我可以将一个范围包发布到Artifactory,它会在npm-local repo中创建以下路径:@scopename/packagename/-/@scopename/packagename-version.tgz

尝试安装此软件包时出现问题。我得到404 Not Found: @scopename/packagename。查看调试日志,我可以看到它可能与斜杠的编码有关:

22 http request GET https://artifacts.company.com/artifactory/api/npm/npm-local/@scopename%2fpackagename
23 http 404 https://artifacts.company.com/artifactory/api/npm/npm-local/@scopename%2fpackagename

我已经关注了在线文档。我将AllowEncodedSlashes NoDecode添加到虚拟主机,将org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true添加到tomcat上的catalina.properties文件中。

我错过了什么吗?

1 个答案:

答案 0 :(得分:3)

这看起来像是反向代理问题。检查你的request.log。如果请求来了/ api / npm / npm-group / @ angular / core而不是/ api / npm / npm-group / @ angular%2Fcore,那就需要在反向代理中解决。

你必须改变两件事: 实现设置org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH = true 并从/etc/nginx/conf.d/default.conf中的proxy_pass变量中删除上下文根